mysql完成条件局限语句的案例(一)
发表时间:2023-07-20 来源:明辉站整理相关软件相关文章人气:
[摘要]1.between语句:mysql> select * from 4a where score between 76 and 89;+--------+------+--------+----...
1.between语句:
mysql> select * from 4a where score between 76 and 89;
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
刘一 18 贺高 2 数学 1 2 78
钱二 19 叶平 1 语文 2 1 79
钱二 19 贺高 2 数学 2 2 81
张三 17 杨艳 3 英语 3 3 88
李四 18 贺高 2 数学 4 2 88
王五 17 杨艳 3 英语 5 3 78
+--------+------+--------+------+--------+------+------+-------+
6 rows in set (0.02 sec)
mysql> select * from 4a where score between 78 and 88;
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
刘一 18 贺高 2 数学 1 2 78
钱二 19 叶平 1 语文 2 1 79
钱二 19 贺高 2 数学 2 2 81
张三 17 杨艳 3 英语 3 3 88
李四 18 贺高 2 数学 4 2 88
王五 17 杨艳 3 英语 5 3 78
+--------+------+--------+------+--------+------+------+-------+
6 rows in set (0.00 sec)
由这两个例子我们可以看出between子句执行时取值范围时是包括它的边界值的。
2.or语句:
mysql> select * from 4a where score=78 or score=88 or score>88 or score<60;
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
刘一 18 叶平 1 语文 1 1 56
刘一 18 贺高 2 数学 1 2 78
刘一 18 周磊 4 物理 1 4 58
钱二 19 杨艳 3 英语 2 3 92
张三 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
NULL NULL NULL NULL NULL NULL NULL 93
+--------+------+--------+------+--------+------+------+-------+
16 rows in set (0.00 sec)
通过这个例子我们可以看出:一个mysql语句中可以有许多个or子句。
3.in语句:
mysql> select * from 4a where score in (78,93);
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
刘一 18 贺高 2 数学 1 2 78
李四 18 周磊 4 物理 4 4 93
王五 17 杨艳 3 英语 5 3 78
NULL NULL NULL NULL NULL NULL NULL 93
+--------+------+--------+------+--------+------+------+-------+
4 rows in set (0.00 sec)
mysql> select * from 4a where score in (score>60);
Empty set (0.00 sec)
看来in语句只能对括号内的具体的某条或某几条记录进行匹配,而无法对其进行逻辑匹配。
mysql> select * from 4a where score>85;
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
钱二 19 杨艳 3 英语 2 3 92
张三 17 叶平 1 语文 3 1 91
张三 17 杨艳 3 英语 3 3 88
李四 18 贺高 2 数学 4 2 88
李四 18 杨艳 3 英语 4 3 90
李四 18 周磊 4 物理 4 4 93
NULL NULL NULL NULL NULL NULL NULL 93
+--------+------+--------+------+--------+------+------+-------+
7 rows in set (0.00 sec)
显然where的功能要比in强大得多,因此where的命令优先级也比高一些。而相同条件下where的搜寻范围也比in要大一点---毕竟功能多了,要搜寻的东西就多了。所以,相同的查询条件下where的效率会比in稍微差一点点,当然也仅仅是一点点而已。当然由于in的命令优先级较where低,所以用in的话SQL语句也更容易报错。
and语句:
mysql> select * from 4a where (score>85 and sage=18) and t=2;
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
李四 18 贺高 2 数学 4 2 88
+--------+------+--------+------+--------+------+------+-------+
1 row in set (0.00 sec)
通过这个例子我们可以看出:一个mysql语句中可以有许多个and子句。
以上就是mysql实现条件限制语句的实例(一)的详细内容,更多请关注php中文网其它相关文章!
学习教程快速掌握从入门到精通的SQL知识。