一. 限制查询结果返回的数量
限制查询结果返回的数量语法结构:
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
比如查询前两条记录:
mysql> SELECT * FROM users LIMIT 2; +----+----------+----------+-----+------+ | id | username | password | age | sex | +----+----------+----------+-----+------+ | 1 | Tom | 123 | 27 | 0 | | 2 | John | 123 | 38 | 0 | +----+----------+----------+-----+------+ 2 rows in set (0.00 sec)
查询第3和4两条记录:
mysql> SELECT * FROM users LIMIT 2,2; +----+----------+----------+-----+------+ | id | username | password | age | sex | +----+----------+----------+-----+------+ | 3 | Tom | 123 | 27 | 0 | | 4 | John | 123 | 35 | 0 | +----+----------+----------+-----+------+ 2 rows in set (0.00 sec)
值得注意的是,SELECT语句记录是从0开始,所以想查询3和4两条记录,不能写LIMIT 3,2, 而需要写LIMIT 2,2;
另外如果id号和结果集中的排列顺序没有任何联系,比如:
mysql> SELECT * FROM users ORDER BY id DESC LIMIT 2; +----+----------+----------+-----+------+ | id | username | password | age | sex | +----+----------+----------+-----+------+ | 9 | 111 | 222 | 33 | NULL | | 8 | BEn | 456 | 17 | 0 | +----+----------+----------+-----+------+ 2 rows in set (0.00 sec)
可以看到显示的是id为9和8这两条记录,而不是1和2
二. 回看INSERT SELECT
4-3节最后,我们讲解了插入记录的另一种方法的语法结构:
INSERT [INTO] tbl_name [(col_name,...)]SELECT...
该方法可以将查找的结果存入指定的数据表。
首先我们创建一个新的数据表test:
mysql> CREATE TABLE test( -> id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, -> username VARCHAR(20) -> ); Query OK, 0 rows affected (0.01 sec)
现在我们将users表中年龄大于30的用户名存入test表:
mysql> INSERT test(username) SELECT username FROM users WHERE age >= 30; Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM test; +----+----------+ | id | username | +----+----------+ | 1 | John | | 2 | John | | 3 | 111 | +----+----------+ 3 rows in set (0.00 sec)
三. 限制查询结果返回的数量
限制查询结果返回的数量语法结构:
[LIMIT {[offset,]row_count | row_count OFFSET offset} ]
请登录之后再进行评论