新聞中心
在 MySQL 中,如果需要有條件的從數(shù)據(jù)表中查詢數(shù)據(jù),可以使用
WHERE 關(guān)鍵字來(lái)指定查詢條件。

梁溪網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),梁溪網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為梁溪1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的梁溪做網(wǎng)站的公司定做!
使用 WHERE 關(guān)鍵字的語(yǔ)法格式如下:
WHERE 查詢條件
查詢條件可以是:
- 帶比較運(yùn)算符和邏輯運(yùn)算符的查詢條件
- 帶 BETWEEN AND 關(guān)鍵字的查詢條件
- 帶 IS NULL 關(guān)鍵字的查詢條件
- 帶 IN 關(guān)鍵字的查詢條件
- 帶 LIKE 關(guān)鍵字的查詢條件
單一條件的查詢語(yǔ)句
單一條件指的是在 WHERE 關(guān)鍵字后只有一個(gè)查詢條件。
例 1
在 tb_students_info 數(shù)據(jù)表中查詢身高為 170cm 的學(xué)生姓名,SQL 語(yǔ)句和運(yùn)行結(jié)果如下。
mysql> SELECT name,height FROM tb_students_info
-> WHERE height=170;
+-------+--------+
| name | height |
+-------+--------+
| Susan | 170 |
+-------+--------+
1 row in set (0.17 sec)可以看到,查詢結(jié)果中記錄的 height 字段的值等于 170。如果根據(jù)指定的條件進(jìn)行查詢時(shí),數(shù)據(jù)表中沒(méi)有符合查詢條件的記錄,系統(tǒng)會(huì)提示“Empty set(0.00sec)”。
例 2
在 tb_students_info 數(shù)據(jù)表中查詢年齡小于 22 的學(xué)生姓名,SQL 語(yǔ)句和運(yùn)行結(jié)果如下。
mysql> SELECT name,age FROM tb_students_info
-> WHERE age<22;
+------+------+
| name | age |
+------+------+
| John | 21 |
+------+------+
1 row in set (0.05 sec)可以看到,查詢結(jié)果中所有記錄的 age 字段的值均小于 22 歲,而大于或等于 22 歲的記錄沒(méi)有被返回。
多條件的查詢語(yǔ)句
在 WHERE 關(guān)鍵詞后可以有多個(gè)查詢條件,這樣能夠使查詢結(jié)果更加精確。多個(gè)查詢條件時(shí)用邏輯運(yùn)算符 AND(&&)、OR(||)或 XOR 隔開(kāi)。
- AND:記錄滿足所有查詢條件時(shí),才會(huì)被查詢出來(lái)。
- OR:記錄滿足任意一個(gè)查詢條件時(shí),才會(huì)被查詢出來(lái)。
- XOR:記錄滿足其中一個(gè)條件,并且不滿足另一個(gè)條件時(shí),才會(huì)被查詢出來(lái)。
例 3
在 tb_students_info 表中查詢 age 大于 21,并且 height 大于等于 175 的學(xué)生信息,SQL 語(yǔ)句和運(yùn)行結(jié)果如下。
mysql> SELECT name,age,height FROM tb_students_info
-> WHERE age>21 AND height>=175;
+--------+------+--------+
| name | age | height |
+--------+------+--------+
| Henry | 23 | 185 |
| Jim | 24 | 175 |
| Thomas | 22 | 178 |
+--------+------+--------+
3 rows in set (0.00 sec)可以看到,查詢結(jié)果中所有記錄的 age 字段都大于 21 且 height 字段都大于等于 175。
例 4
在 tb_students_info 表中查詢 age 大于 21,或者 height 大于等于 175 的學(xué)生信息,SQL 語(yǔ)句和運(yùn)行結(jié)果如下。
mysql> SELECT name,age,height FROM tb_students_info
-> WHERE age>21 OR height>=175;
+--------+------+--------+
| name | age | height |
+--------+------+--------+
| Dany | 25 | 160 |
| Green | 23 | 158 |
| Henry | 23 | 185 |
| Jane | 22 | 162 |
| Jim | 24 | 175 |
| Lily | 22 | 165 |
| Susan | 23 | 170 |
| Thomas | 22 | 178 |
| Tom | 23 | 165 |
+--------+------+--------+
9 rows in set (0.00 sec)可以看到,查詢結(jié)果中所有記錄的 age 字段都大于 21 或者 height 字段都大于等于 175。
例 5
在 tb_students_info 表中查詢 age 大于 21,并且 height 小于 175 的學(xué)生信息和 age 小于 21,并且 height 大于等于 175 的學(xué)生信息,SQL 語(yǔ)句和運(yùn)行結(jié)果如下。
mysql> SELECT name,age,height FROM tb_students_info
-> WHERE age>21 XOR height>=175;
+-------+------+--------+
| name | age | height |
+-------+------+--------+
| Dany | 25 | 160 |
| Green | 23 | 158 |
| Jane | 22 | 162 |
| Lily | 22 | 165 |
| Susan | 23 | 170 |
| Tom | 23 | 165 |
+-------+------+--------+
7 rows in set (0.00 sec)可以看到,查詢結(jié)果中所有記錄的 age 字段都大于 21 且 height 字段都小于 175。tb_students_info 數(shù)據(jù)表中沒(méi)有 age 字段小于 21 且 height 字段大于等于 175 的記錄。
OR、AND 和 XOR 可以一起使用,但是在使用時(shí)要注意運(yùn)算符的優(yōu)先級(jí)。關(guān)于 MySQL 中運(yùn)算符的優(yōu)先級(jí)可閱讀學(xué)習(xí)《MySQL運(yùn)算符的優(yōu)先級(jí)》一節(jié)。
查詢條件越多,查詢出來(lái)的記錄就會(huì)越少。因?yàn)?,設(shè)置的條件越多,查詢語(yǔ)句的限制就更多,能夠滿足所有條件的記錄就更少。為了使查詢出來(lái)的記錄正是自己想要的,可以在 WHERE 語(yǔ)句中將查詢條件設(shè)置的更加具體。
本文標(biāo)題:創(chuàng)新互聯(lián)數(shù)據(jù)庫(kù)教程:MySQLWHERE:條件查詢數(shù)據(jù)
網(wǎng)址分享:http://www.dlmjj.cn/article/cocgohs.html


咨詢
建站咨詢
