明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

mysql完成條件局限語(yǔ)句的案例(一)

[摘要]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í)。