[Mysql]WHERE條件查詢

數(shù)據(jù)庫(kù)中如果包含大量的數(shù)據(jù),很少需要檢索表中所有的行信息,通常只會(huì)根據(jù)特定的需要提取對(duì)應(yīng)的數(shù)據(jù)子集。只檢索所需要數(shù)據(jù)的制定搜索條件。搜索條件也稱為過(guò)濾條件。

使用Where子句

select * from data_test where id = 1;
#
+----+--------+------+
| id | name   | sex  |
+----+--------+------+
|  1 | 王武   | 男   |
+----+--------+------+
1 row in set (0.01 sec)
#

使用操作符

操作符 說(shuō)明
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
Between 兩者之間-between...and...

注意:在同時(shí)使用where和order by 子句時(shí),請(qǐng)務(wù)必保證order by子句位于where之后,否則將會(huì)產(chǎn)生錯(cuò)誤

select * from data_test;#先用update語(yǔ)句將sex字段的值進(jìn)行一下修改,以便后面的演示
+----+--------+-------+
| id | name   | sex   |
+----+--------+-------+
|  1 | 王武   | Women |
|  2 | 張三   | man   |
|  3 | 李四   | Man   |
+----+--------+-------+
3 rows in set (0.00 sec)

檢查單個(gè)值

select * from data_test where sex = "man";
#
+----+--------+------+
| id | name   | sex  |
+----+--------+------+
|  2 | 張三   | man  |
|  3 | 李四   | Man  |
+----+--------+------+
2 rows in set (0.00 sec)
#

注意:如上所示,mysql在執(zhí)行匹配時(shí),默認(rèn)不區(qū)分大小寫(xiě)

不匹配檢查

select * from data_test where sex <> "man";
#
+----+--------+-------+
| id | name   | sex   |
+----+--------+-------+
|  1 | 王武   | Women |
+----+--------+-------+
1 row in set (0.00 sec)
#
select * from data_test where sex != "man";
#
+----+--------+-------+
| id | name   | sex   |
+----+--------+-------+
|  1 | 王武   | Women |
+----+--------+-------+
1 row in set (0.00 sec)
#

注意:以上兩個(gè)語(yǔ)句分別使用了!=和<>,返回的結(jié)果一致

范圍檢查

select * from data_test;
#
+----+--------+-------+-------+
| id | name   | sex   | score |
+----+--------+-------+-------+
|  1 | 王武   | Women |    11 |
|  2 | 張三   | man   |    21 |
|  3 | 李四   | Man   |    31 |
|  4 | 馬六   | man   |    33 |
|  5 | 李七   | women |    53 |
|  6 | 周八   | women |    43 |
+----+--------+-------+-------+
6 rows in set (0.00 sec)
#
#為了使操作更加清晰,在data_test基礎(chǔ)上新增一列score,作為范圍查詢的依據(jù)


-------------------------------------------------------------------------------------

select * from data_test where score between 10 and 50;
#
+----+--------+-------+-------+
| id | name   | sex   | score |
+----+--------+-------+-------+
|  1 | 王武   | Women |    11 |
|  2 | 張三   | man   |    21 |
|  3 | 李四   | Man   |    31 |
|  4 | 馬六   | man   |    33 |
|  6 | 周八   | women |    43 |
+----+--------+-------+-------+
5 rows in set (0.00 sec)
#

空值檢查

#為了演示時(shí)能夠清晰的看到效果,我們把其中一項(xiàng)值設(shè)置為空
select * from data_test;
#
+----+--------+-------+-------+
| id | name   | sex   | score |
+----+--------+-------+-------+
|  1 | 王武   | Women |    11 |
|  2 | 張三   | man   |    21 |
|  3 | 李四   | NULL  |    31 |
|  4 | 馬六   | man   |    33 |
|  5 | 李七   | women |    53 |
|  6 | 周八   | women |    43 |
+----+--------+-------+-------+
6 rows in set (0.00 sec)
#
select * from data_test where sex IS NULL;
#
+----+--------+------+-------+
| id | name   | sex  | score |
+----+--------+------+-------+
|  3 | 李四   | NULL |    31 |
+----+--------+------+-------+
1 row in set (0.00 sec)
#

注意:NULL與不匹配,在通過(guò)過(guò)濾選擇出不具有特定值的行時(shí),你可能希望返回具有NULL值的行。但是,不行,因?yàn)樵谖粗哂刑厥獾暮x,數(shù)據(jù)庫(kù)不知道他們是否匹配,所以在匹配過(guò)濾或者不匹配過(guò)濾時(shí)不返回他們。所以在過(guò)濾數(shù)據(jù)時(shí),一定要驗(yàn)證返回的數(shù)據(jù)中確實(shí)給出了被過(guò)濾列具有NULL的行。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容