![MariaDB必知必会](https://wfqqreader-1252317822.image.myqcloud.com/cover/943/34339943/b_34339943.jpg)
上QQ阅读APP看书,第一时间看更新
4.6 限定结果
SELECT语句返回所有匹配的行,可能是指定表中的每一行。如果只想返回第一行或前几行,可使用LIMIT子句。这里有个例子:
▼ 输入
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/20b-i.jpg?sign=1739647790-fGUAQllf7FR82FYeOrdlO6PsRmDx6rPQ-0-d70871a6bcb6760279a3dcd0082198c8)
▼ 分析
上面使用的SELECT语句检索单列。“LIMIT 5”指示MariaDB返回数据不超过5行。这条语句的输出如下:
▼ 输出
为了得到接下来的5行,需要同时指定起点以及检索的行数,如下所示:
▼ 输入
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/21a-i.jpg?sign=1739647790-9HxhR3XbFZ5YaHIWOXU2hVFaRp9EvPEq-0-8ed4d08782e8f1b429c4e727d2b95180)
▼ 分析
“LIMIT 5,5”指示MariaDB从第5行开始,返回5行。第一个数值表示起始位置,第二个数值表示检索的行数。这条语句的输出如下:
▼ 输出
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/21b-i.jpg?sign=1739647790-g2hLhiZ27vhCeA8nFhpTAaxDWSgxh1wS-0-43a2d177a5bbf614e7acad9deb57a06d)
因此,带一个参数的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”一样。因此,下面两条语句的功能是一样的,你觉得哪个用起来舒服就用哪个:
▼ 输入
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/21c-i.jpg?sign=1739647790-b2YIfU29wzlokSRhQOqkxjphEFjIEreK-0-7be86ee9ba17d28840b2dff6380009d2)
▼ 输入
![](https://epubservercos.yuewen.com/AE5E39/18365861508119506/epubprivate/OEBPS/Images/22-i.jpg?sign=1739647790-qtWLo1h5YHPX5sd8TrGtJQxDtX1CIdpg-0-e115c0a2a31c8710d34850302efbdcff)
注意
当没有足够的行时 在LIMIT子句中指定的行的数量,指的是检索的最大数量。如果没有足够的行(例如,指定“LIMIT 10,5”但只有13行),MariaDB就会返回尽量多的行。