日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql+where+且,MySQL WHERE

發(fā)布時(shí)間:2025/3/21 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql+where+且,MySQL WHERE 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在使用 MySQL SELECT語(yǔ)句時(shí),可以使用 WHERE 子句來(lái)指定查詢條件,從 FROM 子句的中間結(jié)果中選取適當(dāng)?shù)臄?shù)據(jù)行,達(dá)到數(shù)據(jù)過(guò)濾的效果。

語(yǔ)法格式如下:

WHERE {,,…}

其中,判定運(yùn)算其結(jié)果取值為 TRUE、FALSE 和 UNKNOWN。

判定運(yùn)算的語(yǔ)法分類(lèi)如下:

1、{=||>=|<=>|<>|!=}

2、[NOT]LIKE

3、[NOT][REGEXP|RLIKE]

4、[NOT]BETWEENAND

5、IS[NOT]NULL

單一條件的查詢語(yǔ)句

【實(shí)例 1】在表 測(cè)試表 中查詢身高為 170cm 的學(xué)生的姓名,輸入的 SQL 語(yǔ)句和行結(jié)果如下所示。

mysql> use 測(cè)試庫(kù)

Database changed

mysql> SELECT name,height FROM 測(cè)試表 WHERE height=170;

+-------+--------+

| name? | height |

+-------+--------+

| Susan |? ? 170 |

+-------+--------+

1 row in set (0.17 sec)

該語(yǔ)句采用了簡(jiǎn)單的相等過(guò)濾,查詢一個(gè)指定列 height 的具體值 170。

【實(shí)例 2】查詢年齡小于 22 的學(xué)生的姓名,輸入的 SQL 語(yǔ)句和執(zhí)行結(jié)果如下所示。

mysql> SELECT name,age FROM 測(cè)試表 WHERE age<22;

+------+------+

| name | age? |

+------+------+

| John |? ?21 |

+------+------+

1 row in set (0.05 sec)

可以看到,查詢結(jié)果中所有記錄的 age 字段的值均小于 22 歲,而大于或等于 22 歲的記錄沒(méi)有被返回。

多條件的查詢語(yǔ)句

使用 SELECT 查詢時(shí),可以增加查詢的限制條件,這樣可以使查詢的結(jié)果更加精確。MySQL 在 WHERE 子句中使用 AND 操作符限定只有滿足所有查詢條件的記錄才會(huì)被返回。

可以使用 AND 連接兩個(gè)甚至多個(gè)查詢條件,多個(gè)條件表達(dá)式之間用 AND 分開(kāi)。

【實(shí)例 3】在 測(cè)試表 表中查詢 age 大于 21,并且 height 大于等于 175 的學(xué)生的信息,輸入的 SQL 語(yǔ)句和執(zhí)行結(jié)果如下所示。

mysql> SELECT * FROM 測(cè)試表 WHERE age>21 AND height>=175;

+----+--------+---------+------+------+--------+------------+

| id | name? ?| dept_id | age? | sex? | height | login_date |

+----+--------+---------+------+------+--------+------------+

|? 3 | Henry? |? ? ? ?2 |? ?23 | M? ? |? ? 185 | 2015-05-31 |

|? 5 | Jim? ? |? ? ? ?1 |? ?24 | M? ? |? ? 175 | 2016-01-15 |

|? 9 | Thomas |? ? ? ?3 |? ?22 | M? ? |? ? 178 | 2016-06-07 |

+----+--------+---------+------+------+--------+------------+

3 rows in set (0.06 sec)

注意:上例的 WHERE 子句中只包含一個(gè) AND 語(yǔ)句,把兩個(gè)過(guò)濾條件組合在一起,實(shí)際上可以添加多個(gè) AND 過(guò)濾條件,增加條件的同時(shí)增加一個(gè) AND 關(guān)鍵字。

使用 LIKE 的模糊查詢

字符串匹配的語(yǔ)法格式如下:

[NOT] LIKE

字符串匹配是一種模式匹配,使用運(yùn)算符 LIKE 設(shè)置過(guò)濾條件,過(guò)濾條件使用通配符進(jìn)行匹配運(yùn)算,而不是判斷是否相等進(jìn)行比較。

相互間進(jìn)行匹配運(yùn)算的對(duì)象可以是 CHAR、VARCHAR、TEXT、DATETIME 等數(shù)據(jù)類(lèi)型。運(yùn)算返回的結(jié)果是 TRUE 或 FALSE。

利用通配符可以在不完全確定比較值的情形下創(chuàng)建一個(gè)比較特定數(shù)據(jù)的搜索模式,并置于關(guān)鍵字 LIKE 之后。可以在搜索模式的任意位置使用通配符,并且可以使用多個(gè)通配符。MySQL 支持的通配符有以下兩種:

一、百分號(hào)(%)

百分號(hào)是 MySQL 中常用的一種通配符,在過(guò)濾條件中,百分號(hào)可以表示任何字符串,并且該字符串可以出現(xiàn)任意次。

使用百分號(hào)通配符要注意以下幾點(diǎn):

1、MySQL 默認(rèn)是不區(qū)分大小寫(xiě)的,若要區(qū)分大小寫(xiě),則需要更換字符集的校對(duì)規(guī)則。

2、百分號(hào)不匹配空值。

3、百分號(hào)可以代表搜索模式中給定位置的 0 個(gè)、1 個(gè)或多個(gè)字符。

4、尾空格可能會(huì)干擾通配符的匹配,一般可以在搜索模式的最后附加一個(gè)百分號(hào)。

二、下劃線(_)

下劃線通配符和百分號(hào)通配符的用途一樣,下劃線只匹配單個(gè)字符,而不是多個(gè)字符,也不是 0 個(gè)字符。

注意:不要過(guò)度使用通配符,對(duì)通配符檢索的處理一般會(huì)比其他檢索方式花費(fèi)更長(zhǎng)的時(shí)間。

【實(shí)例 4】在 測(cè)試表 表中,查找所有以“T”字母開(kāi)頭的學(xué)生姓名,輸入的 SQL 的語(yǔ)句和執(zhí)行結(jié)果如下所示。

mysql> SELECT name FROM 測(cè)試表 WHERE name LIKE 'T%';

+--------+

| name? ?|

+--------+

| Thomas |

| Tom? ? |

+--------+

2 rows in set (0.12 sec)

注意:在搜索匹配時(shí),通配符“%”可以放在不同位置。

【實(shí)例 5】在 測(cè)試表 表中,查找所有包含“e”字母的學(xué)生姓名,輸入的 SQL 的語(yǔ)句和執(zhí)行結(jié)果如下所示。

mysql> SELECT name FROM 測(cè)試表 WHERE name LIKE '%e%';

+-------+

| name? |

+-------+

| Green |

| Henry |

| Jane? |

+-------+

3 rows in set (0.00 sec)

由執(zhí)行結(jié)果可以看出,該語(yǔ)句查詢字符串中包含字母 e 的學(xué)生的姓名,只要名字中有字母 e,其前面或后面無(wú)論有多少個(gè)字符,都滿足查詢的條件。

【實(shí)例 6】在 測(cè)試表 表中,查找所有以字母“y”結(jié)尾,且“y”前面只有 4 個(gè)字母的學(xué)生的姓名,輸入的 SQL 語(yǔ)句和執(zhí)行結(jié)果如下所示。

mysql> SELECT name FROM 測(cè)試表 WHERE name LIKE '____y';

+-------+

| name? |

+-------+

| Henry |

+-------+

1 row in set (0.00 sec)

日期字段作為條件的查詢語(yǔ)句

以日期字段作為條件,可以使用比較運(yùn)算符設(shè)置查詢條件,也可以使用 BETWEEN AND 運(yùn)算符查詢某個(gè)范圍內(nèi)的值。

BETWEEN AND 用來(lái)查詢某個(gè)范圍內(nèi)的值,該操作符需要兩個(gè)參數(shù),即范圍的開(kāi)始值和結(jié)束值,若字段值滿足指定的范圍查詢條件,則這些記錄被返回。

【實(shí)例 7】在表 測(cè)試表 中查詢注冊(cè)日期在 2016-01-01 之前的學(xué)生的信息,輸入的 SQL 語(yǔ)句和執(zhí)行結(jié)果如下所示。

mysql> SELECT * FROM 測(cè)試表 WHERE login_date

+----+-------+---------+------+------+--------+------------+

| id | name? |dept_id | age? | sex? | height | login_date |

+----+-------+---------+------+------+--------+------------+

|? 1 | Dany? |? ? ? ?1 |? ?25 | F? ? |? ? 160 | 2015-09-10 |

|? 3 | Henry |? ? ? ?2 |? ?23 | M? ? |? ? 185 | 2015-05-31 |

|? 6 | John? |? ? ? ?2 |? ?21 | M? ? |? ? 172 | 2015-11-11 |

|? 8 | Susan |? ? ? ?4 |? ?23 | F? ? |? ? 170 | 2015-10-01 |

+----+-------+---------+------+------+--------+------------+

4 rows in set (0.04 sec)

【實(shí)例 8】在表 測(cè)試表 中查詢注冊(cè)日期在 2015-10-01 和 2016-05-01 之間的學(xué)生的信息,輸入的 SQL 語(yǔ)句和執(zhí)行結(jié)果如下所示。

mysql> SELECT * FROM 測(cè)試表 WHERE login_date BETWEEN '2015-10-01' AND '2016-05-01';

+----+-------+---------+------+------+--------+------------+

| id | name? |dept_id | age? | sex? | height | login_date |

+----+-------+---------+------+------+--------+------------+

|? 5 | Jim? ?|? ? ? ?1 |? ?24 | M? ? |? ? 175 | 2016-01-15 |

|? 6 | John? |? ? ? ?2 |? ?21 | M? ? |? ? 172 | 2015-11-11 |

|? 7 | Lily? |? ? ? ?6 |? ?22 | F? ? |? ? 165 | 2016-02-26 |

|? 8 | Susan |? ? ? ?4 |? ?23 | F? ? |? ? 170 | 2015-10-01 |

+----+-------+---------+------+------+--------+------------+

4 rows in set (0.02 sec)

注意:查詢?nèi)掌跀?shù)據(jù)的時(shí)候注意一下字段類(lèi)型,最好是弄成時(shí)間日期型的字段。如果是文本型字段的話數(shù)據(jù)格式是國(guó)際通用型的話也能查詢的到數(shù)據(jù),如果不是國(guó)際通用型的日期格式的話查詢的時(shí)候能查詢到數(shù)據(jù),但是會(huì)出錯(cuò)。具體的話大家可以自己去測(cè)試一下。

如有疑問(wèn)可以聯(lián)系本人:

總結(jié)

以上是生活随笔為你收集整理的mysql+where+且,MySQL WHERE的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。