检索数据
限制结果
SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。下面举一个例子:
输入:
SELECT prod_name
FROM products
LIMIT 5;
分析:
此语句使用SELECT语句检索单个列。LIMIT 5指示MySQL返回不多于5行。此语句的输出如下所示:
输出:
+--------------+
| prod_name |
+--------------+
| .5 ton anvil |
| 1 ton anvil |
| 2 ton anvil |
| Detonator |
| Bird seed |
+--------------+
为得出下一个5行,可指定要检索的开始行和行数,如下所示:
输入:
SELECT prod_name
FROM products
LIMIT 5, 5;
分析:
LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始的位置,第二个数为要检索的行数。此语句的输出如下所示:
输出:
+--------------+
| prod_name |
+--------------+
| Carrots |
| Fuses |
| JetPack 1000 |
| JetPack 2000 |
| Oil can |
+--------------+
行0 检索出来的的第一行为0而不是行1,因此,LIMIT 1, 1将检索出第二行而不是第一行。
在行数不够时 LIMIT中指定要检索的行数为检索的最大行数。如果没有足够的行(例如,给出LIMIT 10, 5,但只有13行),MySQL将只返回它能返回的那么多行。
MySQL 5的LIMIT语法 LIMIT3, 4的含义是从行4开始的3行还是从行3开始的4行?如前所述,它的意思是从行3开始的4行,这很容易把人搞糊涂。
由于这个原因,MySQL 5支持LIMIT的另一种替代语法。LIMIT 4 OFFSET 3意为从行3开始的4行,就像LIMIT 3, 4一样。