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知識。