dal manuale le funzioni di controllo (ad esempio IF) si possono usare solo nelle select?
io avrei necessità di usare un if in un update, qualcosa del tipo
Codice PHP:
UPDATE
magazzino_oggetti
INNER JOIN magazzino_movimenti ON ( magazzino_oggetti.id = magazzino_movimenti.idOggetto )
SET magazzino_oggetti.giacenza = ( magazzino_oggetti.giacenza - magazzino_movimenti.quantita )
WHERE magazzino_movimenti.id = '$idMovimento'
nel caso sia uno scarico, ma se è un carico dovrei fare l'addizione invece che la sottrazione..
il tipo di movimento lo definisco con la colonna tipo ENUM('0','1') nella tabella magazzino_movimento (0 = scarico, 1 = carico)
però, la query che ho scritto non funzionano, mi crasha proprio nel IF
Codice PHP:
//prova 1
UPDATE
magazzino_oggetti
INNER JOIN magazzino_movimenti ON ( magazzino_oggetti.id = magazzino_movimenti.idOggetto )
IF(magazzino_movimenti.tipo = '0', SET magazzino_oggetti.giacenza = ( magazzino_oggetti.giacenza - magazzino_movimenti.quantita ), SET magazzino_oggetti.giacenza = ( magazzino_oggetti.giacenza + magazzino_movimenti.quantita ))
WHERE magazzino_movimenti.id = '$idMovimento'
//prova 2
UPDATE
magazzino_oggetti
INNER JOIN magazzino_movimenti ON ( magazzino_oggetti.id = magazzino_movimenti.idOggetto )
SET magazzino_oggetti.giacenza = IF(magazzino_movimenti.tipo = '0', magazzino_oggetti.giacenza - magazzino_oggetti.quantita, magazzino_oggetti.giacenza + magazzino_oggetti.quantita)
WHERE magazzino_movimenti.id = '$idMovimento'
..il tutto sarebbe risolvibile con un if nel codice php, ma vorrei farlo nella query...