Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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中从表中选择N条记录_Mysql - Fatal编程技术网

如何在mysql中从表中选择N条记录

如何在mysql中从表中选择N条记录,mysql,Mysql,如果一个表中有1000多条记录,我怎么能只从中获取10条记录呢。我有一个带有rowid、name和cost的测试表 select name, cost from test; 这里我只想选择前10行,不想选择rowid。要选择前10条记录,您可以使用LIMIT,然后是所需的记录数: SELECT name, cost FROM test LIMIT 10 要从特定位置选择10条记录,可以使用LIMIT 10100 SELECT name, cost FROM test LIMIT 10

如果一个表中有1000多条记录,我怎么能只从中获取10条记录呢。我有一个带有rowid、name和cost的测试表

   select  name, cost from test;

这里我只想选择前10行,不想选择rowid。

要选择前10条记录,您可以使用LIMIT,然后是所需的记录数:

SELECT name, cost FROM test LIMIT 10
要从特定位置选择10条记录,可以使用LIMIT 10100

SELECT name, cost FROM test LIMIT 100, 10
这将显示记录101-110

SELECT name, cost FROM test LIMIT 10, 100
这将显示记录11-111

为了确保检索到正确的结果,请确保也按结果排序,否则返回的行可能是随机的


您可以阅读更多@

当您使用时,您应该有一个
ORDER BY
子句,这样,如果连续调用两次并且没有数据更改,您将获得相同的记录集

所以,做一些类似的事情:

select  name, cost 
from test 
order by rowid
limit 10; 

使用此查询,您可以获得前10条记录

SELECT employee_id, first_name 
FROM employees  
LIMIT 10;

使用下面的查询可以得到前N条记录 假设N=10

SELECT name, cost FROM test LIMIT 10;
假设您希望从行M开始获取10条记录,然后(行索引从0开始)


就个人而言,我总是使用带有限制的ORDER BY来保证一致的、可重复的结果。我相信您的第二个示例中存在错误。在我的测试中,
limit10100
返回100条记录,从索引11开始
LIMIT 100,10
返回从索引101开始的10条记录。
LIMIT 10
有时返回的记录少于10条,因此这对我来说不是正确的答案,所以我如何才能选择10条记录?而不是越来越多。我使用命令行执行这个
limit
query,我在第7次运行这个查询8次,得到了8条记录,而不是10条记录。
SELECT name, cost FROM test LIMIT 10;
SELECT name, cost FROM test LIMIT 10 OFFSET (M-1);