[英]What's wrong with this case SQL query?
也許你可以幫忙,我正在使用這個案例查詢,我正在嘗試用它做 mysql 加權。 它出什么問題了?
SELECT *
FROM cronjob_reloaded
WHERE site IN ('site1.com', 'site2.com')
ORDER BY (CASE site
WHEN 'site1.com' THEN 0.2
WHEN 'site2.com' THEN 0.8 ) * RAND( ) DESC
LIMIT 0 , 30
MySQL 說:文檔
1064 - 您的 SQL 語法有錯誤; 檢查與您的 MySQL 服務器版本相對應的手冊,以獲取在第 4 行的 ') * RAND() DESC LIMIT 0, 30' 附近使用的正確語法
這是 CASE 的正確語法
SELECT *
FROM cronjob_reloaded
WHERE site IN ('site1.com', 'site2.com' )
ORDER BY (
CASE
WHEN site = 'site1.com' THEN 0.2
WHEN site = 'site2.com' THEN 0.8
END
) * RAND( ) DESC
LIMIT 0 , 30
CASE 必須以 END 結束:
CASE site
WHEN 'site1.com'
THEN 0.2
WHEN 'site2.com'
THEN 0.8
END -- Added this END to your query's CASE
一個可能的問題是您沒有使用 END CASE。
改變:
CASE site
WHEN 'site1.com'
THEN 0.2
WHEN 'site2.com'
THEN 0.8
)
至:
CASE site
WHEN 'site1.com'
THEN 0.2
WHEN 'site2.com'
THEN 0.8
END CASE
參考: MySQL網站
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.