我想要這樣,如果有一個高級帳戶,則將一個高級帳戶設定為 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
uj5u.com熱心網友回復:
您可以ORDER BY在陳述句中使用一個子句,UPDATE將任何行accstatus設定為優先級'PREMIUM':
UPDATE accounts
SET inuse = 1
WHERE inuse = 0 AND banned = 0
ORDER BY accstatus = 'PREMIUM' DESC
LIMIT 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/439663.html
標籤:mysql 数据库 sql更新 sql-order-by sql 限制
上一篇:php表一次更新多條記錄
下一篇:div自動高度對于內容來說太小了
