MySQL 萬用字元



MySQL 萬用字元

MySQL 的萬用字元是特殊字元,與 LIKE 運算子結合使用,用於在表列中搜索文字模式。MySQL 提供兩種萬用字元:百分號 (%) 和下劃線 (_) 。

下表列出了 MySQL 中兩種萬用字元的用例:

序號 萬用字元 & 描述
1

百分號 (%)

匹配零個或多個字元。例如,'a%' 匹配以 'a' 開頭的字串,例如 'android' 或 'aeroplane'。

2

下劃線 (_)

匹配單個字元。例如,'_un' 匹配以 'un' 結尾的三個字元的字串,例如 'gun' 或 'bun'。

語法

以下是 MySQL 中 % 和 _ 萬用字元的語法:

SELECT * FROM table_name
WHERE column_name LIKE wildcard;

萬用字元可以組合使用。下表演示了在 WHERE 子句中使用 '%' 和 '_' 與 LIKE 運算子的不同方法:

序號 語句 & 描述
1

WHERE SALARY LIKE '200%'

查詢以 200 開頭的任何值。

2

WHERE SALARY LIKE '%200%'

查詢任何位置包含 200 的任何值。

3

WHERE SALARY LIKE '_00%'

查詢第二位和第三位為 00 的任何值。

4

WHERE SALARY LIKE '2_%_%'

查詢以 2 開頭且至少為 3 個字元長的任何值。

5

WHERE SALARY LIKE '%2'

查詢以 2 結尾的任何值。

6

WHERE SALARY LIKE '2%0'

查詢以 2 開頭並以 0 結尾的任何值。

7

WHERE SALARY LIKE '_2%3'

查詢第二位為 2 並以 3 結尾的任何值。

8

WHERE SALARY LIKE '2___3'

查詢五位數中以 2 開頭並以 3 結尾的任何值。

MySQL 百分號 % 萬用字元

MySQL % 萬用字元是 SQL 查詢中用於模式匹配的符號。它表示字串中任何字元序列(包括零個字元)。

在 WHERE 子句中與 LIKE 運算子一起使用時,% 允許您搜尋與指定模式匹配的值。

示例

首先,讓我們使用以下查詢建立一個名為 CUSTOMERS 的表:

CREATE TABLE CUSTOMERS(
   ID INT NOT NULL,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR(25) NOT NULL,
   SALARY DECIMAL(18, 2),
   PRIMARY KEY(ID)
);

現在,讓我們使用如下所示的 INSERT 語句將值插入到上面建立的表中:

INSERT INTO CUSTOMERS VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

得到的 CUSTOMERS 表如下:

ID 姓名 年齡 地址 薪水
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

在這裡,我們從 CUSTOMERS 表中檢索薪水以 2000 開頭的所有記錄:

SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '2000%';

輸出

以上查詢的輸出如下:

ID 姓名 年齡 地址 薪水
1 Ramesh 32 Ahmedabad 2000.00
3 Kaushik 23 Kota 2000.00

示例

在下面的查詢中,我們正在獲取地址以 'D' 開頭並以 'i' 結尾的所有記錄:

SELECT * FROM CUSTOMERS
WHERE ADDRESS LIKE 'D%i';

輸出

執行給定查詢後,輸出顯示如下:

ID 姓名 年齡 地址 薪水
2 Khilan 25 Delhi 1500.00

示例

在這裡,我們正在查詢地址以 'd' 結尾的所有記錄:

SELECT * FROM CUSTOMERS
WHERE ADDRESS LIKE '%d';

輸出

當我們執行以上查詢時,獲得的輸出如下:

ID 姓名 年齡 地址 薪水
1 Ramesh 32 Ahmedabad 2000.00
6 Komal 22 Hyderabad 4500.00

示例

在下面的查詢中,我們嘗試獲取薪水中任何位置都有 '1' 的所有記錄:

SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '%1%';

輸出

以上查詢產生的輸出如下:

ID 姓名 年齡 地址 薪水
2 Khilan 25 Delhi 1500.00
7 Muffy 24 Indore 10000.00

MySQL 下劃線 _ 萬用字元

MySQL 下劃線萬用字元代表在其使用位置的單個字元。當它與 WHERE 子句中的 LIKE 運算子結合使用時,下劃線萬用字元允許您搜尋與具有單個字元佔位符的特定模式匹配的值。

示例

在這裡,我們檢索所有 NAME 以某個字元開頭,後跟 'ardik' 的 CUSTOMERS -

SELECT * FROM CUSTOMERS
WHERE NAME LIKE '_ardik';

輸出

讓我們編譯並執行查詢,以產生以下結果 -

ID 姓名 年齡 地址 薪水
5 Hardik 27 Bhopal 8500.00

示例

現在,我們正在檢索所有 NAME 以 'M' 開頭,後跟任何字元,再跟 'f',再跟任何字元,最後跟 'y' 的 CUSTOMERS -

SELECT * FROM CUSTOMERS
WHERE NAME LIKE 'M_f_y';

輸出

當我們執行以上查詢時,獲得的輸出如下:

ID 姓名 年齡 地址 薪水
7 Muffy 24 Indore 10000.00

示例

在下面的查詢中,我們檢索所有 SALARY 在第二、第三和第四位上具有 '500' 的記錄 -

SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '_500%';

輸出

執行給定查詢後,輸出顯示如下:

ID 姓名 年齡 地址 薪水
2 Khilan 25 Delhi 1500.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00

示例

在下面的查詢中,我們檢索所有 ADDRESS 以 'M' 開頭且長度至少為 3 個字元的記錄 -

SELECT * FROM CUSTOMERS
WHERE ADDRESS LIKE 'M_%_%';

輸出

上面查詢的輸出結果如下所示 -

ID 姓名 年齡 地址 薪水
4 Chaitali 25 Mumbai 6500.00

示例

以下查詢檢索所有 NAME 在第二位具有 'h' 且以 'i' 結尾的記錄 -

SELECT * FROM CUSTOMERS
WHERE NAME LIKE '_h%i';

輸出

如果我們編譯並執行查詢,則結果如下所示 -

ID 姓名 年齡 地址 薪水
4 Chaitali 25 Mumbai 6500.00
廣告
© . All rights reserved.