更新時(shí)間:2022-07-25 10:02:51 來源:動力節(jié)點(diǎn) 瀏覽3055次
在MySQL教程中會學(xué)到通配符,MySQL中的通配符是允許我們非常輕松快速地從表中搜索復(fù)雜數(shù)據(jù)的字符。它通過替換一個或多個字符來處理字符串,并在將字符串匹配到表中后產(chǎn)生結(jié)果。
在正常比較中,我們使用兩個字符串,其中兩個字符串的每個字符都應(yīng)該在給出輸出之前完全匹配。在通配符中,它們提供了在字符串中使用單個字符或一組字符的靈活性,這對于另一個字符串是可以接受的。
MySQL將通配符與LIKE或NOT LIKE比較運(yùn)算符結(jié)合使用。LIKE 運(yùn)算符與WHERE 子句一起用于查找列中指定模式的結(jié)果。
MySQL 具有以下通配符的優(yōu)點(diǎn):
它提高了應(yīng)用程序的性能。
它節(jié)省了從表中過濾記錄的時(shí)間。
它使復(fù)雜查詢的使用變得非常容易和快速。
它使我們能夠?qū)?qiáng)大的搜索引擎開發(fā)到大型數(shù)據(jù)驅(qū)動的應(yīng)用程序中。
以下是 MySQL 中使用的常見通配符類型,可以單獨(dú)使用或組合使用通配符:
|
序列號 |
通配符 |
說明 |
|---|---|---|
| 1 | % | 該符號表示零個或多個字符。 |
| 2 | _ | 此符號用于精確匹配一個(單個)字符。 |
現(xiàn)在,我們將通過以下示例了解這些通配符在 MySQL 中的使用:
讓我們首先創(chuàng)建一個名為“ employee ”的表,其中包含以下數(shù)據(jù):

1. 百分比符號(%)
它用于從表中搜索或過濾指定 0、1 或更多字符的記錄。我們可以在 LIKE 子句的第一個位置、最后一個位置或字符串的兩側(cè)使用它。
句法
使用此通配符的基本語法是:
SELECT * FROM tab_name WHERE column_name LIKE 'X%' ;
或,
SELECT * FROM tab_name WHERE column_name LIKE '%X' ;
或,
SELECT * FROM tab_name WHERE column_name LIKE 'X%X' ;
在上面的語法中,' X ' 指定任意單個字符,%匹配任意數(shù)量的字符。
例子
此語句返回城市名稱以“F”字符開頭的所有員工。
mysql> SELECT * FROM employees WHERE city LIKE 'F%' ;
它將給出以下輸出:

同樣,此語句從表中返回城市名稱以“a”開頭并以“a”字符結(jié)尾的所有員工:
mysql> SELECT * FROM employees WHERE city LIKE 'a%a' ;
執(zhí)行成功后,我們會得到如下結(jié)果:

此語句返回 X 值可以在任何位置的所有員工:
mysql> SELECT * FROM employees WHERE city LIKE '%n%' ;
它將給出如下輸出:

如果我們想從表中返回城市不是以'a'開頭并以'a'字符結(jié)尾的所有員工,請執(zhí)行以下語句:
mysql> SELECT * FROM employees WHERE city NOT LIKE 'a%a' ;
我們將得到以下結(jié)果,我們可以看到?jīng)]有以“a”開頭并以“a”字符結(jié)尾的城市名稱。

2.下劃線(_)
當(dāng)需要從與任何位置的單個字符完全匹配的表中返回結(jié)果時(shí),我們可以使用它。
句法
使用此通配符的基本語法是:
SELECT * FROM tab_name WHERE column_name LIKE 'X_' ;
或,
SELECT * FROM tab_name WHERE column_name LIKE '_X' ;
在上面的語法中,'X ' 指定任何字符串模式,而_符號正好匹配一個字符。
例子
此語句返回年齡在 40 到 49 之間的所有員工:
SELECT * FROM employees WHERE emp_age LIKE '4_' ;
我們將看到如下結(jié)果:

此語句從表中返回城市名稱以任何字符開頭后跟“lorida”字符的所有員工:
mysql> SELECT * FROM employees WHERE city LIKE '_lorida' ;
執(zhí)行成功后,我們會得到如下結(jié)果:

如果我們想從表中返回城市不以任何字符后跟“lorida”字符的所有員工,請執(zhí)行以下語句:
mysql> SELECT * FROM employees WHERE city NOT LIKE '_lorida' ;
出現(xiàn)以下輸出:

3. 連字符 (-)
當(dāng)我們需要從表中過濾一定范圍內(nèi)的記錄時(shí),該符號用于返回結(jié)果。它是使用REGEXP_LIKE()函數(shù)的通配符的擴(kuò)展版本。
此語句從employees 表中獲取包含字母“b”、“c”或“d”的所有記錄,如下所示:
mysql> SELECT * FROM employees WHERE REGEXP_LIKE(city, '[bd]' );
輸出
執(zhí)行成功后,我們會得到如下結(jié)果:

如果我們想從表中返回所有城市不包含字母“b”、“c”或“d”的員工,如下所示:
mysql> SELECT * FROM employees WHERE NOT REGEXP_LIKE(city, '[bd]' );
輸出

我們已經(jīng)了解到通配符也可以作為兩者的組合使用,讓我們通過下面的例子來理解它。
此語句返回姓名以 X 開頭且長度至少為兩個字符的所有員工:
mysql> SELECT * FROM employees WHERE city LIKE 'a_%_' ;
我們將得到以下輸出:

這是另一個產(chǎn)生輸出的示例,其中所有在收入列中的第二個位置為“5 ”的員工:
mysql> SELECT * FROM employees WHERE income LIKE '_5%' ;
我們可以得到以下輸出:

以上就是關(guān)于“MySQL通配符的介紹”,大家如果對此比較感興趣,想了解更多相關(guān)知識,可以關(guān)注一下動力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容細(xì)致全面,從入門到精通,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對大家能夠有所幫助哦。

初級 202925

初級 203221

初級 202629

初級 203743