簡體   English   中英

如何從結果查詢中排除第一行?

[英]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 )。
如何在現有查詢中實現此目標?

使用limitoffset功能。 在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM