mysql完成條件局限語(yǔ)句的案例(一)
發(fā)表時(shí)間:2023-07-20 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]1.between語(yǔ)句:mysql> select * from 4a where score between 76 and 89;+--------+------+--------+----...
1.between語(yǔ)句:
mysql> select * from 4a where score between 76 and 89;
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
劉一 18 賀高 2 數(shù)學(xué) 1 2 78
錢二 19 葉平 1 語(yǔ)文 2 1 79
錢二 19 賀高 2 數(shù)學(xué) 2 2 81
張三 17 楊艷 3 英語(yǔ) 3 3 88
李四 18 賀高 2 數(shù)學(xué) 4 2 88
王五 17 楊艷 3 英語(yǔ) 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 數(shù)學(xué) 1 2 78
錢二 19 葉平 1 語(yǔ)文 2 1 79
錢二 19 賀高 2 數(shù)學(xué) 2 2 81
張三 17 楊艷 3 英語(yǔ) 3 3 88
李四 18 賀高 2 數(shù)學(xué) 4 2 88
王五 17 楊艷 3 英語(yǔ) 5 3 78
+--------+------+--------+------+--------+------+------+-------+
6 rows in set (0.00 sec)
由這兩個(gè)例子我們可以看出between子句執(zhí)行時(shí)取值范圍時(shí)是包括它的邊界值的。
2.or語(yǔ)句:
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 語(yǔ)文 1 1 56
劉一 18 賀高 2 數(shù)學(xué) 1 2 78
劉一 18 周磊 4 物理 1 4 58
錢二 19 楊艷 3 英語(yǔ) 2 3 92
張三 17 葉平 1 語(yǔ)文 3 1 91
張三 17 賀高 2 數(shù)學(xué) 3 2 47
張三 17 楊艷 3 英語(yǔ) 3 3 88
張三 17 周磊 4 物理 3 4 56
李四 18 賀高 2 數(shù)學(xué) 4 2 88
李四 18 楊艷 3 英語(yǔ) 4 3 90
李四 18 周磊 4 物理 4 4 93
王五 17 葉平 1 語(yǔ)文 5 1 46
王五 17 楊艷 3 英語(yǔ) 5 3 78
王五 17 周磊 4 物理 5 4 53
趙六 19 葉平 1 語(yǔ)文 6 1 35
NULL NULL NULL NULL NULL NULL NULL 93
+--------+------+--------+------+--------+------+------+-------+
16 rows in set (0.00 sec)
通過(guò)這個(gè)例子我們可以看出:一個(gè)mysql語(yǔ)句中可以有許多個(gè)or子句。
3.in語(yǔ)句:
mysql> select * from 4a where score in (78,93);
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
劉一 18 賀高 2 數(shù)學(xué) 1 2 78
李四 18 周磊 4 物理 4 4 93
王五 17 楊艷 3 英語(yǔ) 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)
看來(lái)in語(yǔ)句只能對(duì)括號(hào)內(nèi)的具體的某條或某幾條記錄進(jìn)行匹配,而無(wú)法對(duì)其進(jìn)行邏輯匹配。
mysql> select * from 4a where score>85;
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
錢二 19 楊艷 3 英語(yǔ) 2 3 92
張三 17 葉平 1 語(yǔ)文 3 1 91
張三 17 楊艷 3 英語(yǔ) 3 3 88
李四 18 賀高 2 數(shù)學(xué) 4 2 88
李四 18 楊艷 3 英語(yǔ) 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強(qiáng)大得多,因此where的命令優(yōu)先級(jí)也比高一些。而相同條件下where的搜尋范圍也比in要大一點(diǎn)---畢竟功能多了,要搜尋的東西就多了。所以,相同的查詢條件下where的效率會(huì)比in稍微差一點(diǎn)點(diǎn),當(dāng)然也僅僅是一點(diǎn)點(diǎn)而已。當(dāng)然由于in的命令優(yōu)先級(jí)較where低,所以用in的話SQL語(yǔ)句也更容易報(bào)錯(cuò)。
and語(yǔ)句:
mysql> select * from 4a where (score>85 and sage=18) and t=2;
+--------+------+--------+------+--------+------+------+-------+
sname sage tname t cname s c score
+--------+------+--------+------+--------+------+------+-------+
李四 18 賀高 2 數(shù)學(xué) 4 2 88
+--------+------+--------+------+--------+------+------+-------+
1 row in set (0.00 sec)
通過(guò)這個(gè)例子我們可以看出:一個(gè)mysql語(yǔ)句中可以有許多個(gè)and子句。
以上就是mysql實(shí)現(xiàn)條件限制語(yǔ)句的實(shí)例(一)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。