浅谈Mysql中的limit关键字

来源:互联网 发布:linux mrtg定制 编辑:程序博客网 时间:2024/05/17 08:46

昨天同学问我一个面试题:如何查找一个表排序后的倒数第3条数据。百度后才知道,

select * from table_name order by column_name desc limit 2,1。其实可以理解为,找逆序排序后的第3条数据。

其实有2中形式,一种是limit后面带一个值,另一种是带2个值。下面以products产品表为例,进行说明:

1.select prod_name from products limit  5;将返回从第1行开始的前5条数据。

2.select prod_name from products limit 5,5; 表示返回从行5开始的5行数据。第一个数为开始位置,第二个数为要检索的行数。


所以,带一个值的limit总是从第一行开始,给出的数为返回的行数。带两个值的limit可以指定从行号为第一个的位置开始的行数。


注意:

1.检索出来的第一行为行0而不是行1.因此,select * from products limit 1,1将检索出第二行而不是第一行。

2.如果没有足够的行,例如:select * from products limit 10,5; 假设该表只有13条数据,那么MYSQL将只返回它能返回的那么多行。

3.select * from products limit 3,4.含义为从行3开始 的4条数据,不要搞混淆。大家只需要记住,第一个参数表示索引位置,即从第几行开始。第二个参数表示要返回的行数,即返回多少条记录。limit在实际开发中,常用于分页显示,大家可以理解为每页显示多少条记录。





原创粉丝点击