mysql - 如何从结果查询中排除第一行?

标签 mysql sql

考虑以下查询-

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 会跳过第一行,从第二行开始。

关于mysql - 如何从结果查询中排除第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26085669/

相关文章:

mysql - Mysql插入一行后输出主键

java - 生产环境中 Google App Engine 和 Google Cloud SQL 的连接出现问题

python - 将模型添加到特定用户(Django)

mysql - 我怎样才能在mysql中导出这个选择结果

sql - K - 词搜索 SQL

php - 在 EC2 上使用经过修改的 lamp stack(Lighttpd 而不是 Apache)的网站在发展过程中最有可能遇到的扩展问题是什么?

java - H2数据库和oracle模式-alter table only with different sql statement - Flyway迁移测试

sql - 从 PostgreSQL 中的 unix 时间中提取年份

mysql - 使用 SUM() 连接多个表

php - 在搜索结果中突出显示关键字