2013-02-07 13 views

Odpowiedz

9

jak poniżej:

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

(stosować odpowiednie numer typu zamiast INTEGER).

7

Albo prościej:

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 jest prosty (nie-SQL-standard) Postgres sposób rzucić. Szczegóły w instrukcji w rozdziale Type Casts.
Więcej o data types in PostgreSQL.

ostatni orzecznik Dodałem jest przydatna, jeśli order mógł już być1, w którym to przypadku zmiana niczego nie zmieni, ale nadal kosztują tyle samo. Zamiast tego raczej nic nie rób. Pokrewne (rozważyć ostatni akapit):

I NIE potrzebująć zmienną tutaj.

Powiązane problemy