问题描述
理想情况下,我需要一个等价于
Ideally I need a query that is equivalent to
select * from customer where row_number() = 3
但这是非法的.
我不能使用自动递增的字段.
row_number() 是需要选择的行.
row_number() is the row that needs to be selected.
我该怎么做?
嗯,我用 iSql*plus 来练习,使用 limit 和 auto_increment 出于某种原因是非法的.我最终创建了一个序列和一个触发器,并在每次有条目时将 id 增加 1.
Well, I use iSql*plus to practice, and using limit and auto_increment is illegal for some reason. I ended up creating a sequence and a trigger and just upped the id by 1 every time there was an entry.
推荐答案
您可以使用 LIMIT 2,1 而不是 WHERE row_number() = 3.
You can use LIMIT 2,1 instead of WHERE row_number() = 3.
正如文档所解释的那样,第一个参数指定了要返回的第一行,第二行指定要返回的最大行数.
请记住,它是一个基于 0 的索引.所以,如果你想要行号 n,第一个参数应该是 n-1.第二个参数总是 1,因为你只需要一行.例如,如果您想要customer 表的行号56:
Keep in mind that it's an 0-based index. So, if you want the line number n, the first argument should be n-1. The second argument will always be 1, because you just want one row. For example, if you want the line number 56 of a table customer:
SELECT * FROM customer LIMIT 55,1
这篇关于从mysql表中选择特定行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)