2015-09-27 50 views
0

我有一個SELECT語句假設獲得前3個匹配的列表,但由於某種原因它出現錯誤。當我說前三場比賽時,我並不是說只有三排。我的意思是排名前3的比賽。所以,這樣的事情:選擇語句獲取錯誤

10 
10 
9 
8 
8 
8 

將是前3名比賽,因爲10,9和8是最高的。請看看我的代碼:

SELECT input, 
(input LIKE '% Hello %') as 'matches' 
FROM allData 
HAVING matches > '0' 
AND char_length(input) <= '50' 
AND `matches` in 
(select distinct `matches` 
from allData 
order by `matches` desc 
limit 3); 
+0

你是什麼錯誤?這似乎只是一個SQL/MySQL的問題;沒有PHP/mysqli的問題。 – chris85

+1

MySQL不允許在子查詢中使用「LIMIT」。你不能這樣做你想做的事。 –

+0

@GordonLinoff任何解決方案? – jessica

回答

-1

您不能在子查詢中設置限制。如果您想實現這一點,請將此查詢分成兩個查詢。首先創建子查詢,然後將子查詢的結果放入主查詢中。