Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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
如何使用SQL从数据库中选择前10个元素?_Sql_Mysql - Fatal编程技术网

如何使用SQL从数据库中选择前10个元素?

如何使用SQL从数据库中选择前10个元素?,sql,mysql,Sql,Mysql,有一个查询类似于SELECT*FROM clients ORDER BY id。我只想选择前10个元素。我该怎么做? 另外,我正在使用MySQL。这里是使用SELECT(选自)所能做的一切: SELECT * FROM clients ORDER BY id LIMIT 10; 请注意,偏移非常有助于分页: 限制10偏移量11 对于第二页,共10页。MySQL的方法是使用: SELECT * FROM clients ORDER BY id LIMIT 10; 这是MySQL特有的。

有一个查询类似于
SELECT*FROM clients ORDER BY id
。我只想选择前10个元素。我该怎么做?


另外,我正在使用MySQL。

这里是使用SELECT(选自)所能做的一切:

SELECT * FROM clients ORDER BY id LIMIT 10;

请注意,偏移非常有助于分页:

限制10偏移量11


对于第二页,共10页。

MySQL的方法是使用:

   SELECT * FROM clients ORDER BY id LIMIT 10;
这是MySQL特有的。长期以来,其他数据库中没有对应的数据库,但SQL:2008标准引入了一种额外的语法:

   SELECT * FROM clients FETCH FIRST 10 ROWS ONLY;
以及:

但问题是,MySQL和大多数其他数据库还不支持这种语法。如果你关心可移植性,你应该遵循那里的发展

请注意,您应该始终使用按子句排序,否则在不同的调用中结果可能是随机的。

尝试以下方法:

SELECT TOP 10 * FROM clients ORDER BY id

应该注意,ORDER BY默认为ASC,其中DESC也是一个选项,但必须明确说明-
ORDER BY id DESC
,但这不是一个好主意,请参见:@Benjaco对于拉取多个页面是正确的,因为DB每次必须从0开始。偏移工具最适合于用户不太可能经常超出第一页的UI用例。
   SELECT * FROM clients FETCH FIRST 10 ROWS ONLY;
   SELECT * FROM clients OFFSET 1 FETCH NEXT 10 ROWS ONLY;
SELECT TOP 10 * FROM clients ORDER BY id