时间:2021-07-01 10:21:17 帮助过:55人阅读
mysql> select * from 4a limit 0,3; +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 | | 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 | | 刘一 | 18 | 杨艳 | 3 | 英语 | 1 | 3 | 67 | +--------+------+--------+------+--------+------+------+-------+ 3 rows in set (0.00 sec)
注意:起始行的第一行为0而不是1。
6. like语句:
语法:select 字段名 from 表名 where 字段名 like 条件;
mysql> select * from 4a where sage like "%9" or sage like "%8"; +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 | | 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 | | 刘一 | 18 | 杨艳 | 3 | 英语 | 1 | 3 | 67 | | 刘一 | 18 | 周磊 | 4 | 物理 | 1 | 4 | 58 | | 钱二 | 19 | 叶平 | 1 | 语文 | 2 | 1 | 79 | | 钱二 | 19 | 贺高 | 2 | 数学 | 2 | 2 | 81 | | 钱二 | 19 | 杨艳 | 3 | 英语 | 2 | 3 | 92 | | 钱二 | 19 | 周磊 | 4 | 物理 | 2 | 4 | 68 | | 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 | | 李四 | 18 | 杨艳 | 3 | 英语 | 4 | 3 | 90 | | 李四 | 18 | 周磊 | 4 | 物理 | 4 | 4 | 93 | | 赵六 | 19 | 叶平 | 1 | 语文 | 6 | 1 | 35 | | 赵六 | 19 | 贺高 | 2 | 数学 | 6 | 2 | 68 | | 赵六 | 19 | 周磊 | 4 | 物理 | 6 | 4 | 71 | +--------+------+--------+------+--------+------+------+-------+ 14 rows in set (0.00 sec)
mysql> select * from 4a where sage like "%9" or sage like "%8" or sage like "%%"; +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 | | 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 | | 刘一 | 18 | 杨艳 | 3 | 英语 | 1 | 3 | 67 | | 刘一 | 18 | 周磊 | 4 | 物理 | 1 | 4 | 58 | | 钱二 | 19 | 叶平 | 1 | 语文 | 2 | 1 | 79 | | 钱二 | 19 | 贺高 | 2 | 数学 | 2 | 2 | 81 | | 钱二 | 19 | 杨艳 | 3 | 英语 | 2 | 3 | 92 | | 钱二 | 19 | 周磊 | 4 | 物理 | 2 | 4 | 68 | | 张三 | 17 | 叶平 | 1 | 语文 | 3 | 1 | 91 | | 张三 | 17 | 贺高 | 2 | 数学 | 3 | 2 | 47 | | 张三 | 17 | 杨艳 | 3 | 英语 | 3 | 3 | 88 | | 张三 | 17 | 周磊 | 4 | 物理 | 3 | 4 | 56 | | 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 | | 李四 | 18 | 杨艳 | 3 | 英语 | 4 | 3 | 90 | | 李四 | 18 | 周磊 | 4 | 物理 | 4 | 4 | 93 | | 王五 | 17 | 叶平 | 1 | 语文 | 5 | 1 | 46 | | 王五 | 17 | 杨艳 | 3 | 英语 | 5 | 3 | 78 | | 王五 | 17 | 周磊 | 4 | 物理 | 5 | 4 | 53 | | 赵六 | 19 | 叶平 | 1 | 语文 | 6 | 1 | 35 | | 赵六 | 19 | 贺高 | 2 | 数学 | 6 | 2 | 68 | | 赵六 | 19 | 周磊 | 4 | 物理 | 6 | 4 | 71 | +--------+------+--------+------+--------+------+------+-------+ 21 rows in set (0.00 sec)
可以看出双百分号%%是全匹配,可以匹配表中的所有记录。那么,即便是NULL值也能够匹配吗?
答案是否定的:
mysql> select * from 4a; +--------+------+--------+------+--------+------+------+-------+ | sname | sage | tname | t | cname | s | c | score | +--------+------+--------+------+--------+------+------+-------+ | 刘一 | 18 | 叶平 | 1 | 语文 | 1 | 1 | 56 | | 刘一 | 18 | 贺高 | 2 | 数学 | 1 | 2 | 78 | | 刘一 | 18 | 杨艳 | 3 | 英语 | 1 | 3 | 67 | | 刘一 | 18 | 周磊 | 4 | 物理 | 1 | 4 | 58 | | 钱二 | 19 | 叶平 | 1 | 语文 | 2 | 1 | 79 | | 钱二 | 19 | 贺高 | 2 | 数学 | 2 | 2 | 81 | | 钱二 | 19 | 杨艳 | 3 | 英语 | 2 | 3 | 92 | | 钱二 | 19 | 周磊 | 4 | 物理 | 2 | 4 | 68 | | 张三 | 17 | 叶平 | 1 | 语文 | 3 | 1 | 91 | | 张三 | 17 | 贺高 | 2 | 数学 | 3 | 2 | 47 | | 张三 | 17 | 杨艳 | 3 | 英语 | 3 | 3 | 88 | | 张三 | 17 | 周磊 | 4 | 物理 | 3 | 4 | 56 | | 李四 | 18 | 贺高 | 2 | 数学 | 4 | 2 | 88 | | 李四 | 18 | 杨艳 | 3 | 英语 | 4 | 3 | 90 | | 李四 | 18 | 周磊 | 4 | 物理 | 4 | 4 | 93 | | 王五 | 17 | 叶平 | 1 | 语文 | 5 | 1 | 46 | | 王五 | 17 | 杨艳 | 3 | 英语 | 5 | 3 | 78 | | 王五 | 17 | 周磊 | 4 | 物理 | 5 | 4 | 53 | | 赵六 | 19 | 叶平 | 1 | 语文 | 6 | 1 | 35 | | 赵六 | 19 | 贺高 | 2 | 数学 | 6 | 2 | 68 | | 赵六 | 19 | 周磊 | 4 | 物理 | 6 | 4 | 71 | | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 93 | +--------+------+--------+------+--------+------+------+-------+ 22 rows in set (0.05 sec)
7.distinct语句:
语法:select distinct 字段名 from 表名;
mysql> select distinct sname from 4a; +--------+ | sname | +--------+ | 刘一 | | 钱二 | | 张三 | | 李四 | | 王五 | | 赵六 | | NULL | +--------+
mysql> select distinct sname, sage from 4a; +--------+------+ | sname | sage | +--------+------+ | 刘一 | 18 | | 钱二 | 19 | | 张三 | 17 | | 李四 | 18 | | 王五 | 17 | | 赵六 | 19 | | NULL | NULL | +--------+------+ 7 rows in set (0.00 sec)
mysql> select distinct sname, sage,tname from 4a; +--------+------+--------+ | sname | sage | tname | +--------+------+--------+ | 刘一 | 18 | 叶平 | | 刘一 | 18 | 贺高 | | 刘一 | 18 | 杨艳 | | 刘一 | 18 | 周磊 | | 钱二 | 19 | 叶平 | | 钱二 | 19 | 贺高 | | 钱二 | 19 | 杨艳 | | 钱二 | 19 | 周磊 | | 张三 | 17 | 叶平 | | 张三 | 17 | 贺高 | | 张三 | 17 | 杨艳 | | 张三 | 17 | 周磊 | | 李四 | 18 | 贺高 | | 李四 | 18 | 杨艳 | | 李四 | 18 | 周磊 | | 王五 | 17 | 叶平 | | 王五 | 17 | 杨艳 | | 王五 | 17 | 周磊 | | 赵六 | 19 | 叶平 | | 赵六 | 19 | 贺高 | | 赵六 | 19 | 周磊 | | NULL | NULL | NULL | +--------+------+--------+ 22 rows in set (0.00 sec)
可以看出当作用于多列的时候distinct就不再返回唯一记录了。
另外distinct还可以和一些数学运算的函数一起使用:
mysql> select count(distinct sname) from 4a; +-----------------------+ | count(distinct sname) | +-----------------------+ | 6 | +-----------------------+ 1 row in set (0.08 sec)
mysql> select sum(distinct score) from 4a; +---------------------+ | sum(distinct score) | +---------------------+ | 1193 | +---------------------+ 1 row in set (0.06 sec)
mysql> select max(distinct score) from 4a; +---------------------+ | max(distinct score) | +---------------------+ | 93 | +---------------------+ 1 row in set (0.06 sec)
mysql> select min(distinct score) from 4a; +---------------------+ | min(distinct score) | +---------------------+ | 35 | +---------------------+ 1 row in set (0.00 sec)
mysql> select min(distinct score-1) from 4a; +-----------------------+ | min(distinct score-1) | +-----------------------+ | 34 | +-----------------------+ 1 row in set (0.08 sec)
例子太多就不一一列举了。
以上就是mysql实现条件限制语句的实例(二) 的详细内容,更多请关注Gxl网其它相关文章!