MySQL資料表中帶LIKE的字元匹配查詢

2021-07-23 20:28:20 字數 2331 閱讀 2734

like關鍵字可以匹配字串是否相等。

基本的語法格式如下:

[not] like '字串'
not:可選。加上not表示與指定的字串不匹配時滿足條件。

字串:指定用於匹配的字串,該字串必須加單引號或者雙引號。

「字串」引數的值可以是乙個完整的字串,也可以是包含百分號(%)或者下劃線(_)的萬用字元。

注意%和_的區別:

使用like關鍵字匹配乙個完整的字串'tom'。select語句的**如下:

select * from employee where  name like 'tom';
在dos提示符視窗中檢視使用like關鍵字匹配乙個完整的字串'tom'的操作效果。如下圖所示:

上圖中**執行的結果顯示,name欄位中取值為tom的記錄被查詢了出來。其它不符合條件的記錄都被過濾掉了。

在這裡,like與等於號(=)是等價的。如果修改為「=」,查詢結果是一樣的。如下圖所示:

但是,上面的情況只對匹配乙個完整的字串有效,如果字串中包含了萬用字元,就不能這樣進行替換了。

使用like關鍵字匹配帶有萬用字元「%」的字串'河南%'。select語句的**如下:

select * from employee where homeaddress like '河南%';
在dos提示符視窗中檢視使用like關鍵字匹配帶有萬用字元「%」的字串'河南%'的操作效果。如下圖所示:

上圖中**執行的結果顯示,homeaddress欄位以「河南」開頭的記錄都被查詢出來了。

如果使用「=」替換like時,則查詢結果為空記錄。如下圖所示:

上圖中**執行的結果顯示,沒有查詢出任何記錄。這說明字串中包含了萬用字元時,「=」就不能代替like了。

使用like關鍵字匹配帶有萬用字元「_」的字串't_m'。select語句的**如下:

select * from employee where name like 't_m';
在dos提示符視窗中檢視使用like關鍵字匹配帶有萬用字元「_」的字串't_m'的操作效果。如下圖所示:

上圖中**執行的結果顯示,name欄位中取值為tom的記錄被查詢出來了。

「_」只能代表乙個字元。如果字串為「t_」,將不能查詢出結果。如下圖所示:

上圖中**執行的結果顯示,沒有查詢出任何記錄。因為name欄位中不存在以「t」開頭,長度為2的記錄。

需要匹配的字串需要加引號,可以是單引號,也可以是雙引號。在mysql 5.6.19版本中,使用乙個「_」符號也可以代表乙個漢字。如下圖所示:

如果使用乙個「_」符號代表乙個漢字時,不能正確查詢出記錄,則可以使用兩個「_」 符號來代表乙個漢字,再查詢一下試試。畢竟,一般情況下,乙個漢字是兩個字元,它需要兩個「_」符號來代表乙個漢字。

使用like關鍵字匹配帶有萬用字元「_」的字串'_雪_'。select語句的**如下:

select * from employee where name like '_雪_';
在dos提示符視窗中檢視使用like關鍵字匹配帶有萬用字元「_」的字串'_雪_'的操作效果。如下圖所示:

上圖中**執行的結果顯示,name欄位中,中間乙個漢字為「雪」的三個漢字的名字被查詢了出來。

not like表示字串不匹配的情況下符合條件。

使用not like關鍵字查詢不是姓劉的所有人的記錄。select語句的**如下:

select * from employee where name not like "劉%";
在dos提示符視窗中檢視使用not like關鍵字查詢不是姓劉的所有人的記錄的操作效果。如下圖所示:

上圖中**執行的結果顯示,name欄位中取值為「劉兵」的記錄被排除出去了。

使用like關鍵字匹配帶有萬用字元「%」的字串'%軍'。select語句的**如下:

select * from employee where name like '%軍';
在dos提示符視窗中檢視使用like關鍵字匹配帶有萬用字元「%」的字串'%軍'的操作效果。如下圖所示:

上圖中**執行的結果顯示,name欄位中最後乙個字為「軍」的所有人的記錄被查詢了出來。

使用like關鍵字匹配帶有萬用字元「%」的字串'%雪%'。select語句的**如下:

select * from employee where name like '%雪%';
在dos提示符視窗中檢視使用like關鍵字匹配帶有萬用字元「%」的字串'%雪%'的操作效果。如下圖所示:

上圖中**執行的結果顯示,name欄位中,中間任意位置為「雪」的人的名字的記錄都被查詢了出來。

使用like和not like關鍵字可以很好匹配字串。而且,可以使用「%」和「_」等萬用字元來簡化查詢。

mysql高階講解之資料表中帶OR的多條件查詢

or關鍵字可以聯合多個條件進行查詢。使用or關鍵字時 1 只要符合這幾個查詢條件的其中乙個條件,這樣的記錄就會被查詢出來。2 如果不符合這些查詢條件中的任何一條,這樣的記錄將被排除掉。or關鍵字的基本語法格式如下 條件表示式1or條件表示式2 or條件表示式n or可以連線兩個條件表示式,同時可以使...

mysql高階 五 資料表中帶OR的多條件查詢

or關鍵字可以聯合多個條件進行查詢。使用 or關鍵字時 1 只要符合這幾個查詢條件的其中乙個條件,這樣的記錄就會被查詢出來。2 如果不符合這些查詢條件中的任何一條,這樣的記錄將被排除掉。or關鍵字的基本語法格式如下 條件表示式1 or 條件表示式 2 or 條件表示式 n or可以連線兩個條件表示式...

MySQL 資料表操作 刪除資料表中的記錄

刪除資料記錄是資料操作中常見的操作,可以刪除表中已經存在的資料記錄。在mysql中可以通過delete語句來刪除資料記錄,該sql語句可以通過以下幾種方式使用 刪除特定資料記錄 刪除所有資料記錄。刪除特定資料記錄 在mysql中刪除特定資料記錄可通過sql語句delete來實現,其語法形式如下 de...