mysql 更新其他地方无法优先处理的地方
mysql update where if else cant get it prioritize
我希望,如果有高级帐户,将一个高级帐户设置为 inuse=1,如果没有高级帐户,则更新任何其他帐户。
但这不会优先考虑高级帐户,因为它只是更新了我的数据库行中的第一个条目。
如何将其与 if else / case 一起使用。我找不到在 sql 查询
的 WHERE 部分中使用的任何 if / else / case 线程
UPDATE accounts SET inuse = 1 WHERE accstatus = 'PREMIUM' AND inuse = 0 AND banned = 0
OR inuse = 0 AND banned = 0
LIMIT 1
您可以在 UPDATE
语句中使用 ORDER BY
子句,优先考虑 accstatus
设置为 'PREMIUM'
的任何行:
UPDATE accounts
SET inuse = 1
WHERE inuse = 0 AND banned = 0
ORDER BY accstatus = 'PREMIUM' DESC
LIMIT 1;
我希望,如果有高级帐户,将一个高级帐户设置为 inuse=1,如果没有高级帐户,则更新任何其他帐户。
但这不会优先考虑高级帐户,因为它只是更新了我的数据库行中的第一个条目。 如何将其与 if else / case 一起使用。我找不到在 sql 查询
的 WHERE 部分中使用的任何 if / else / case 线程UPDATE accounts SET inuse = 1 WHERE accstatus = 'PREMIUM' AND inuse = 0 AND banned = 0
OR inuse = 0 AND banned = 0
LIMIT 1
您可以在 UPDATE
语句中使用 ORDER BY
子句,优先考虑 accstatus
设置为 'PREMIUM'
的任何行:
UPDATE accounts
SET inuse = 1
WHERE inuse = 0 AND banned = 0
ORDER BY accstatus = 'PREMIUM' DESC
LIMIT 1;