select语句返回指定表中所有匹配的行,很可能是每一行。如果你只想返回第一行或者一定数量的行,该怎么办呢?这是可行的,然而遗憾的是,在各种DBMS中的这一SQL实现并不相同。
1.SQL Server、Access
select top 5 prod_name from products;
2.db2
select prod_name from products fetch first 5 rows only;
3.oracle
select prod_name from products where rownum <=5;
4.MYSQL、MariaDB、PostgreSQL、SQLite
select prod_name from products limit 5;
为了得到后面的5行数据,需要指定从哪儿开始以及检索的行数:
select prod_name from products limit 5 offset 5; (返回从第5行起的5行数据,第一个数字是检索的行数,第二个数字是指从哪儿开始)
所以,limit指定返回的行数,limit带的offset指定从哪儿开始;
注意:第一个被检索的行是第0行,而不是第一行。因此,limit 1 offset 1 会检索第二行,而不是第一行。
提示:MYSQL、MariaDB、SQLift支持简化版的limit 4 offset 3 语句,即limit 3,4 使用这个语法,逗号之前的值对应offset,逗号之后的值对应limit