SQL si el valor en una fila

foxel:

Me gustaría actualizar una fila sólo si se cumple una condición en la otra fila.

algo como:

IF (SELECT `allow` FROM `accountlist` WHERE `id`='myid')<'1234' 
       THEN
           IF (UPDATE `accountlist` SET `upvotes`=`upvotes`+1 WHERE `user`='myuser')
               THEN (UPDATE `accountlist` SET `allow`='1234' WHERE `id`='myid');
           END IF;
       ELSE (/*return false*/);
END IF

en otras palabras, si permitirá que es inferior a 1.234 en myid , incremento upvotes en otra fila y si se configura succeded permiten a 1234 , de lo contrario devuelve valores de error falsos o algunos.

¿Es posible ejecutar varias consultas cuando se cumple una condición?

pasarán;

Es necesario expresiones caso como este:

UPDATE `accountlist` 
SET `upvotes` = CASE WHEN `user`='myuser' THEN `upvotes` + 1 ELSE `upvotes` END,
    `allow` = CASE WHEN `id` = 'myid' THEN '1234' ELSE `allow` END
WHERE (SELECT `allow` FROM `accountlist` WHERE `id`='myid') < '1234'
AND EXISTS (SELECT 1 FROM `accountlist` WHERE `user`='myuser')

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=414786&siteId=1
Recomendado
Clasificación