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

Mur*_*hy 22 mysql

如何从一个包含1000条以上记录的表中只获取10条记录.我有一个带有rowid,名称,成本的测试表.

   select  name, cost from test;
Run Code Online (Sandbox Code Playgroud)

在这里我想只选择前10行而不想选择rowid.

472*_*084 38

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

SELECT name, cost FROM test LIMIT 10
Run Code Online (Sandbox Code Playgroud)

要从特定位置选择十个记录,可以使用LIMIT 10,100

SELECT name, cost FROM test LIMIT 100, 10
Run Code Online (Sandbox Code Playgroud)

这将显示记录101-110

SELECT name, cost FROM test LIMIT 10, 100
Run Code Online (Sandbox Code Playgroud)

这将显示记录11-111

要确保检索正确的结果,请确保对结果进行ORDER BY,否则返回的行可能是random-ish

你可以阅读更多@ http://php.about.com/od/mysqlcommands/g/Limit_sql.htm

  • 就个人而言,我总是使用带有LIMIT的ORDER BY来保证一致,可重复的结果. (2认同)
  • 我相信你的第二个例子中有一个错误.在我的测试中,`LIMIT 10,100`返回100条记录,从索引11开始.`LIMIT 100,10`返回从索引101开始的10条记录. (2认同)

Red*_*ter 5

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

所以,做一些像:

select  name, cost 
from test 
order by rowid
limit 10; 
Run Code Online (Sandbox Code Playgroud)