上QQ阅读APP看书,第一时间看更新
4.6 限定结果
SELECT语句返回所有匹配的行,可能是指定表中的每一行。如果只想返回第一行或前几行,可使用LIMIT子句。这里有个例子:
▼ 输入
▼ 分析
上面使用的SELECT语句检索单列。“LIMIT 5”指示MariaDB返回数据不超过5行。这条语句的输出如下:
▼ 输出
为了得到接下来的5行,需要同时指定起点以及检索的行数,如下所示:
▼ 输入
▼ 分析
“LIMIT 5,5”指示MariaDB从第5行开始,返回5行。第一个数值表示起始位置,第二个数值表示检索的行数。这条语句的输出如下:
▼ 输出
因此,带一个参数的LIMIT总是从第一行开始,指定的数值表示返回的行数。带两个参数的LIMIT可以从第一个参数指定的位置开始。
警告
第0行 检索的第一行是行0,而不是行1。例如,“LIMIT 1,1”检索第二行,而不是第一行。
让我们来做一些练习。“LIMIT 3,4”的意思是从第4行开始返回3行,还是从第3行开始,返回4行呢?正如刚学到的,它的意思是从第3行开始,返回4行,但这容易混淆。出于这个原因,MariaDB支持LIMIT的两种语法。“LIMIT 4 OFFSET 3”的意思是从第3行开始获取4行,就跟“LIMIT 3,4”一样。因此,下面两条语句的功能是一样的,你觉得哪个用起来舒服就用哪个:
▼ 输入
▼ 输入
注意
当没有足够的行时 在LIMIT子句中指定的行的数量,指的是检索的最大数量。如果没有足够的行(例如,指定“LIMIT 10,5”但只有13行),MariaDB就会返回尽量多的行。