Axel Richter: If Anweisung in UPDATE Mysql

Beitrag lesen

Hallo

UPDATE test\_it SET
anz = '(files + ".$neuanzahl.")',
IF(FIND_IN_SET('$endung', key1) > 0, key1 = CONCAT_WS(',',key1,'".$insertkey."'))
WHERE id =1

IF führt in einer Query nichts aus, sondern liefert etwas zurück.

IF(1<2,'yes','no') liefert also "yes" zurück. http://dev.mysql.com/doc/refman/4.1/en/control-flow-functions.html

IF(FIND_IN_SET('b', key1) > 0, key1, CONCAT_WS(',',key1,'b')) liefert also entweder den key1 oder die Verkettung zurück, je nachdem, ob (FIND_IN_SET('b', key1) > 0) wahr oder falsch ist.

Nun muss man das Ergebnis von IF nur noch in den UPDATE-Query einbauen:

UPDATE test_it SET
anz = (files + 3),
key1 = IF(FIND_IN_SET('b', key1) > 0, key1, CONCAT_WS(',',key1,'b'))
WHERE id =1

viele Grüße

Axel