考虑以下查询-
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
会跳过第一行,从第二行开始。
关于mysql - 如何从结果查询中排除第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26085669/