mysql - 在 MySQL 中按数字选择行
问题描述
我想从与特定行号匹配的表的行中选择所有字段。这听起来很简单,但我无法从在线文档中找出语法。(我不想自己计算行数或使用变量来计算角色)。像这样的东西应该工作:
select * from mytable where row_number()=2
我能找到的最简单的例子(例如:在此处输入链接描述)使用 OVER 子句,所以我尝试了类似的东西:
SELECT
ROW_NUMBER() OVER (
ORDER BY REFNUM
) *
FROM
MYTABLE
WHERE
ROW_NUMBER() =2
但仍然不是有效的语法。
解决方案
您需要为ROW_NUMBER()
表达式分配一个别名,然后对其进行测试。
SELECT ROW_NUMBER() OVER (ORDER BY REFNUM) AS row, *
FROM YourTable
HAVING row = 2
这本质上是一样的
SELECT *
FROM YourTable
ORDER BY REFNUM
LIMIT 1, 1
LIMIT
从 开始计数0
,而ROW_NUMBER()
从开始计数1
,因此 中的偏移LIMIT
量少 1。
推荐阅读
- javascript - 如何在 es6 模块上调用函数
- karate - Running only selected tests with dynamic input
- google-sheets - 如何仅在第一列以及包含单词“Total”作为菜单标题的列中过滤导入的数据
- docker - wget hangs in docker on some hosts with debian:buster image
- javascript - Did a VS code update change the syntax highlighting of JavaScript classes?
- svelte - How to process an HTML file to reference fingerprinted assets?
- swift - Swift package created by SPM doesn't have access to full Foundation?
- python - 我正在尝试从不和谐频道接收最后一条消息,但我遇到了“正在运行的事件循环”问题,有人可以帮助查看我的代码吗?
- python - 如何为seaborn histplot绘制奇数个子图
- python - python / pandas中多列的百分位数范围输出