Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 是否在不依赖表id的情况下按顺序显示表中的记录?_Mysql_Sql_Database - Fatal编程技术网

Mysql 是否在不依赖表id的情况下按顺序显示表中的记录?

Mysql 是否在不依赖表id的情况下按顺序显示表中的记录?,mysql,sql,database,Mysql,Sql,Database,我有一个由3列组成的表,在对表进行多次插入和删除操作后,表中的记录数总是会发生变化,因此表中的自动增量id无法提供获取的记录的准确序列。例如,在某个时刻,我想根据一个条件逐个地获取一组记录。这10条记录的ID将不按顺序排列。那么,我怎样才能说出这10张唱片中的第五张呢 select @num:=@num+1 as id, x, y from test where g=true; 上面的查询为我提供了一组需要的记录,这些记录具有顺序键id,但我不想将它们全部提取在一起,我希望它们中的每一个单独

我有一个由3列组成的表,在对表进行多次插入和删除操作后,表中的记录数总是会发生变化,因此表中的自动增量id无法提供获取的记录的准确序列。例如,在某个时刻,我想根据一个条件逐个地获取一组记录。这10条记录的ID将不按顺序排列。那么,我怎样才能说出这10张唱片中的第五张呢

 select @num:=@num+1 as id, x, y from test where g=true;

上面的查询为我提供了一组需要的记录,这些记录具有顺序键id,但我不想将它们全部提取在一起,我希望它们中的每一个单独并按顺序提取。

如果我正确理解了您的问题,您可以使用子查询-还应该初始化用户定义的变量:

另外,您可能希望在子查询中包含orderby-test.id,以保证结果的顺序

您可以使用LIMIT子句从特定偏移量的序列中进行选择:

select id, x, y
  from test
 where g=true
 limit 4, 1;

请注意,除非使用ORDERBY,否则无法保证结果将以任何一致的顺序出现。在您的情况下,您可能可以按id订购。

您的问题不清楚。请阅读,这里是一个学习如何提高问题质量和获得更好答案的好地方。完美!更简单,无需生成新列。谢谢你耶,这是我的第一个意思,但我认为限制使解决方案更简单。@Hussein-是的,我同意-限制对于这个特殊情况更容易。
select id, x, y
  from test
 where g=true
 limit 4, 1;