2013-02-07 25 views

risposta

9

Così:

UPDATE albumphoto SET order = 1 WHERE idtable = 1 AND idx = CAST (x AS INTEGER); 

(Uso tipo numerico appropriato anziché INTEGER).

7

O più semplice:

UPDATE albumphoto 
SET order = 1 
WHERE idtable = 1 
AND idx = split_part(text, ',', 1)::int -- or whatever type it is 
AND order IS DISTINCT FROM 1; 

expression::type è il semplice (non SQL standard) modo Postgres per lanciare. Dettagli nel manuale nel capitolo Type Casts.
Ulteriori informazioni su data types in PostgreSQL.

L'ultima predicato ho aggiunto è utile se order potrebbe già essere 1, nel qual caso l'aggiornamento non cambierebbe nulla, ma ancora lo stesso costo. Invece non fare nulla. Correlati (considerare l'ultimo paragrafo):

e non si necessità una variabile qui.

Problemi correlati