[英]How can I exclude the first row from a result query?
考慮以下查詢-
SELECT * FROM GAME_LIST WHERE
genre = (SELECT Genre FROM GAME_LIST WHERE name='$searchTerm') OR
publisher = (SELECT Publisher FROM GAME_LIST WHERE name='$searchTerm')
ORDER BY CASE WHEN name LIKE '%$searchTerm%' then 1 else 2 end, points DESC
此查詢將從GAME_LIST
表生成行數。 例如-
A - 123 - W
B - 235 - R
C - 323 - R
D - 146 - R
E - 167 - W
F - 189 - W
G - 165 - R
但我不想包括第一行(在本例中為A - 123 - W
)。
如何在現有查詢中實現此目標?
使用limit
的offset
功能。 在MySQL中,這通常寫為:
ORDER BY CASE WHEN name LIKE '%$searchTerm%' then 1 else 2 end, points DESC
LIMIT 1, 9999999
第二個參數只是一個很大的數字,以確保您獲得了所需的所有行。
也可以寫成:
LIMIT 99999999 OFFSET 1
第一行的OFFSET
計數從0
開始,因此1
跳過第一行,從第二行開始。
使用以下內容:
SELECT * FROM GAME_LIST WHERE
genre = (SELECT Genre FROM GAME_LIST WHERE name='$searchTerm') OR
publisher = (SELECT Publisher FROM GAME_LIST WHERE name='$searchTerm')
ORDER BY CASE WHEN name LIKE '%$searchTerm%' then 1 else 2 end, points DESC
LIMIT 2, ( SELECT * FROM GAME_LIST WHERE
genre = (SELECT Genre FROM GAME_LIST WHERE name='$searchTerm') OR
publisher = (SELECT Publisher FROM GAME_LIST WHERE name='$searchTerm'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.