如何使用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