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;