mysql> SELECT * FROM teacher_class limit 1; +----+--------+--------+-----------+------+------+------------+------------+ | id | t_name | gender | c_name | room | days | begin_date | end_date | +----+--------+--------+-----------+------+------+------------+------------+ | 1 | Gene | male | python001 | 334 | 22 | 2013-03-31 | 2013-05-05 | +----+--------+--------+-----------+------+------+------------+------------+ 1 row in set (0.00 sec)
Limit offset, row_count # offset 偏移量,从0开始; # row_count,总记录数,长度,不是开始和结束, 若是数量大于余下的记录数,则获取全部余下的记录数,默认值0
mysql> SELECT * FROM teacher_class limit 3,4; +----+---------+--------+-----------+------+------+------------+------------+ | id | t_name | gender | c_name | room | days | begin_date | end_date | +----+---------+--------+-----------+------+------+------------+------------+ | 4 | Emma | female | python004 | 338 | 20 | 2013-03-15 | 2013-04-05 | | 5 | Janice | female | python007 | 332 | 27 | 2013-04-15 | 2013-05-10 | | 6 | Jessica | female | python008 | 332 | 28 | 2013-05-15 | 2013-06-08 | +----+---------+--------+-----------+------+------+------------+------------+ 3 rows in set (0.00 sec)
mysql> SELECT days FROM teacher_class; +------+ | days | +------+ | 22 | | 22 | | 55 | | 20 | | 27 | | 28 | +------+ 6 rows in set (0.00 sec) mysql> SELECT DISTINCT days FROM teacher_class; +------+ | days | +------+ | 22 | | 55 | | 20 | | 27 | | 28 | +------+ 5 rows in set (0.00 sec) mysql> SELECT days, begin_date FROM teacher_class; +------+------------+ | days | begin_date | +------+------------+ | 22 | 2013-03-31 | | 22 | 2013-05-31 | | 55 | 2013-02-15 | | 20 | 2013-03-15 | | 27 | 2013-04-15 | | 28 | 2013-05-15 | +------+------------+ 6 rows in set (0.01 sec) mysql> SELECT DISTINCT days, begin_date FROM teacher_class; +------+------------+ | days | begin_date | +------+------------+ | 22 | 2013-03-31 | | 22 | 2013-05-31 | | 55 | 2013-02-15 | | 20 | 2013-03-15 | | 27 | 2013-04-15 | | 28 | 2013-05-15 | +------+------------+ 6 rows in set (0.00 sec)
将多条select语句的结果,合并到一块儿,称为联合python
使用union关键字,联合两个select语句便可mysql
注意 若是union查询结果有重复,会自动去掉重复的数据;若是想获得所有数据,经过UNION ALL
来显示数据sql
多个select语句检索时,字段要一致; 数据类型,尽可能保持一致;若是不一致,应该能让MySQL可以作类型转换学习
检索结果列名称的问题:根据第一条select语句的字段,进行名称排列code
mysql> SELECT t_name, days FROM teacher_class WHERE c_name = "python002" ORDER BY days DESC LIMIT 1; +---------+------+ | t_name | days | +---------+------+ | Jessica | 55 | +---------+------+ 1 row in set (0.00 sec) mysql> mysql> SELECT t_name, days FROM teacher_class WHERE c_name = "python008" ORDER BY days DESC LIMIT 1; +---------+------+ | t_name | days | +---------+------+ | Jessica | 28 | +---------+------+ 1 row in set (0.00 sec) # 联合查询语法 mysql>(SELECT t_name, days FROM teacher_class WHERE c_name = "python002" ORDER BY days DESC LIMIT 1) UNION (SELECT t_name, days FROM teacher_class WHERE c_name = "python008" ORDER BY days DESC LIMIT 1); +---------+------+ | t_name | days | +---------+------+ | Jessica | 55 | | Jessica | 28 | +---------+------+ 2 rows in set (0.00 sec)
ORDER BY
进行排序mysql> (SELECT t_name, days FROM teacher_class WHERE c_name = "python002" ) \ -> UNION (SELECT t_name, days FROM teacher_class WHERE c_name = "python008" ) ORDER BY days; +---------+------+ | t_name | days | +---------+------+ | Mona | 22 | | Emma | 28 | | Jessica | 28 | | Mona | 55 | | Jessica | 55 | +---------+------+ 5 rows in set (0.00 sec)