查詢時這是非法的情況嗎?查詢返回語法錯誤時的MySQL情況
它返回一個錯誤,告訴我檢查在votes >= (SELECT FLOOR((COUNT(*)/(2 + 1)) + 1) threshold FROM votes) level T
附近使用的正確語法。我在MySQL 5.0.83上運行我的數據庫。
SELECT CASE WHEN (
SELECT vote_candidate, MAX(votes_above_the_threshold) votes
FROM (
SELECT vote_candidate vote_candidate, COUNT(*) votes_above_the_threshold
FROM vote_orders
WHERE vote_order = 1
GROUP BY vote_candidate
HAVING votes_above_the_threshold >= (
SELECT FLOOR((COUNT(*)/(2 + 1)) + 1) threshold
FROM votes
)
) t
WHERE votes_above_the_threshold = (
SELECT MAX(votes_above_the_threshold)
FROM vote_orders
)
) votes >= (
SELECT FLOOR((COUNT(*)/(2 + 1)) + 1) threshold
FROM votes
) level
THEN (level - original_votes)
ELSE 0
END redistribution
顯然,這給了一個新的錯誤:「每一個派生表必須有它自己的別名:......」我試圖讓最後的選擇(SELECT FLOOR ...)的名u,然後我回到了初始錯誤... –
其實 - 這真的是對的。我錯過了一些括號,但現在它返回我想要的值。非常感謝你。 :) –