从mysql表中选择特定行

Nu *_*Mik 24 mysql select row-number

理想情况下,我需要一个相当于的查询

select * from customer where row_number() = 3
Run Code Online (Sandbox Code Playgroud)

但这是非法的.

我无法使用自动增量字段.

row_number()是需要选择的行.

我该怎么做?

编辑:嗯,我使用iSql*plus来练习,并且使用limit和auto_increment由于某种原因是非法的.我最终创建了一个序列和一个触发器,每当有一个条目时,我就将id加1.

sp0*_*00m 63

你可以用LIMIT 2,1而不是WHERE row_number() = 3.

正如文档所解释的那样,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数.

请记住,它是一个基于0的索引.因此,如果您想要行号n,则第一个参数应为n-1.第二个参数将始终为1,因为您只需要一行.例如,如果您想要表格的第56customer:

SELECT * FROM customer LIMIT 55,1
Run Code Online (Sandbox Code Playgroud)

  • @Starx如果@MarlonBrando只想要他的结果的第三行,而不是任何技术ID,那么`LIMIT`就是解决方案. (3认同)
  • @Starx是的,当然,你必须删除查询的“WHERE row_number() = 3”...... (2认同)

Sta*_*arx 6

你不能选择那样的行.您必须指定一个值为3的字段

如果您要比较的字段是,则此查询将起作用 id

select * from customer where `id` = 3
Run Code Online (Sandbox Code Playgroud)


San*_*ath 5

SET @customerID=0;
SELECT @customerID:=@customerID+1 AS customerID
FROM CUSTOMER ;
Run Code Online (Sandbox Code Playgroud)

您可以像这样从 SQL 获取数据集并将其填充到 Java 数据结构(如列表)中,然后在那里进行必要的排序。(也许在类似界面的帮助下)