[Talk-it] Domanda postgres

M∡rtin Koppenhoefer dieterdreist at gmail.com
Fri Feb 25 17:28:35 GMT 2011


2011/2/25 Luca Delucchi <lucadeluge at gmail.com>:
> Il 25 febbraio 2011 10:11, Federico Cozzi <f.cozzi at gmail.com> ha scritto:
>
>> Non ho sottomano Postgresql per fare prove.
>> Di solito con Oracle non metto mai il filtro all'interno della COUNT:
>> va messo nella WHERE.
>>
>
> anch'io con postgresql lo faccio così
>
> per esempio
>
> SELECT count(osm_id) FROM planet_osm_roads WHERE oneway = 'yes' OR
> oneway = 'true' OR oneway = '1';
>
> questa secondo me è la cosa migliore


Si, anch'io usavo questo metodo finora, ma leggendo la documentazione
mi era venuto l'idea di provare anche l'altro modo (che apparentemente
non faceva quello che volevo).

Visto che mi avete dato delle risposte ottime, mi potete anche
spiegare perché questo:

UPDATE planet_osm_polygon SET name=regexp_replace(name,'fixme','','i')
WHERE name IS NOT NULL AND name ~*'^fixme|$fixme';

mi fa l'update di tutte le righe anche dove non c'è un "fixme"
contenuto? Se faccio un select:

select name FROM planet_osm_polygon WHERE name IS NOT NULL AND name
~*'^fixme|$fixme';

mi seleziona solo poche righe.

ciao Martin



More information about the Talk-it mailing list