- MySQL 基礎
- MySQL 首頁
- MySQL 簡介
- MySQL 特性
- MySQL 版本
- MySQL 變數
- MySQL 安裝
- MySQL 管理
- MySQL PHP 語法
- MySQL Node.js 語法
- MySQL Java 語法
- MySQL Python 語法
- MySQL 連線
- MySQL Workbench
- MySQL 資料庫
- MySQL 建立資料庫
- MySQL 刪除資料庫
- MySQL 選擇資料庫
- MySQL 顯示資料庫
- MySQL 複製資料庫
- MySQL 資料庫匯出
- MySQL 資料庫匯入
- MySQL 資料庫資訊
- MySQL 使用者
- MySQL 建立使用者
- MySQL 刪除使用者
- MySQL 顯示使用者
- MySQL 修改密碼
- MySQL 授權
- MySQL 顯示許可權
- MySQL 收回許可權
- MySQL 鎖定使用者帳戶
- MySQL 解鎖使用者帳戶
- MySQL 表
- MySQL 建立表
- MySQL 顯示錶
- MySQL 修改表
- MySQL 重命名錶
- MySQL 克隆表
- MySQL 清空表
- MySQL 臨時表
- MySQL 修復表
- MySQL 描述表
- MySQL 新增/刪除列
- MySQL 顯示列
- MySQL 重新命名列
- MySQL 表鎖定
- MySQL 刪除表
- MySQL 派生表
- MySQL 查詢
- MySQL 查詢
- MySQL 約束
- MySQL 插入查詢
- MySQL 選擇查詢
- MySQL 更新查詢
- MySQL 刪除查詢
- MySQL 替換查詢
- MySQL忽略插入
- MySQL在重複鍵上插入更新
- MySQL插入選擇
- MySQL 檢視
- MySQL 建立檢視
- MySQL 更新檢視
- MySQL 刪除檢視
- MySQL 重新命名檢視
- MySQL 運算子和子句
- MySQL WHERE 子句
- MySQL LIMIT 子句
- MySQL DISTINCT 子句
- MySQL ORDER BY 子句
- MySQL GROUP BY 子句
- MySQL HAVING 子句
- MySQL AND 運算子
- MySQL OR 運算子
- MySQL LIKE 運算子
- MySQL IN 運算子
- MySQL ANY 運算子
- MySQL EXISTS 運算子
- MySQL NOT 運算子
- MySQL 不等於運算子
- MySQL IS NULL 運算子
- MySQL IS NOT NULL 運算子
- MySQL BETWEEN 運算子
- MySQL UNION 運算子
- MySQL UNION 與 UNION ALL
- MySQL MINUS 運算子
- MySQL INTERSECT 運算子
- MySQL INTERVAL 運算子
- MySQL 連線
- MySQL 使用連線
- MySQL 內連線
- MySQL 左連線
- MySQL 右連線
- MySQL 交叉連線
- MySQL 全連線
- MySQL 自連線
- MySQL 刪除連線
- MySQL 更新連線
- MySQL UNION 與 JOIN
- MySQL 鍵
- MySQL 唯一鍵
- MySQL 主鍵
- MySQL 外部索引鍵
- MySQL 複合鍵
- MySQL 候選鍵
- MySQL 觸發器
- MySQL 觸發器
- MySQL 建立觸發器
- MySQL 顯示觸發器
- MySQL 刪除觸發器
- MySQL BEFORE INSERT 觸發器
- MySQL AFTER INSERT 觸發器
- MySQL BEFORE UPDATE 觸發器
- MySQL AFTER UPDATE 觸發器
- MySQL BEFORE DELETE 觸發器
- MySQL AFTER DELETE 觸發器
- MySQL 資料型別
- MySQL 資料型別
- MySQL VARCHAR
- MySQL BOOLEAN
- MySQL ENUM
- MySQL DECIMAL
- MySQL INT
- MySQL FLOAT
- MySQL BIT
- MySQL TINYINT
- MySQL BLOB
- MySQL SET
- MySQL 正則表示式
- MySQL 正則表示式
- MySQL RLIKE 運算子
- MySQL NOT LIKE 運算子
- MySQL NOT REGEXP 運算子
- MySQL regexp_instr() 函式
- MySQL regexp_like() 函式
- MySQL regexp_replace() 函式
- MySQL regexp_substr() 函式
- MySQL 函式 & 運算子
- MySQL 日期和時間函式
- MySQL 算術運算子
- MySQL 數值函式
- MySQL 字串函式
- MySQL 聚合函式
- MySQL 其他概念
- MySQL NULL 值
- MySQL 事務
- MySQL 使用序列
- MySQL 處理重複項
- MySQL SQL 注入
- MySQL 子查詢
- MySQL 註釋
- MySQL 檢查約束
- MySQL 儲存引擎
- MySQL 將表匯出到 CSV 檔案
- MySQL 將 CSV 檔案匯入資料庫
- MySQL UUID
- MySQL 通用表表達式
- MySQL ON DELETE CASCADE
- MySQL Upsert
- MySQL 水平分割槽
- MySQL 垂直分割槽
- MySQL 遊標
- MySQL 儲存函式
- MySQL 訊號
- MySQL 重新發出訊號
- MySQL 字元集
- MySQL 排序規則
- MySQL 萬用字元
- MySQL 別名
- MySQL ROLLUP
- MySQL 今日日期
- MySQL 字面量
- MySQL 儲存過程
- MySQL EXPLAIN
- MySQL JSON
- MySQL 標準差
- MySQL 查詢重複記錄
- MySQL 刪除重複記錄
- MySQL 選擇隨機記錄
- MySQL 顯示程序列表
- MySQL 修改列型別
- MySQL 重置自動遞增
- MySQL Coalesce() 函式
- MySQL 有用資源
- MySQL 有用函式
- MySQL 語句參考
- MySQL 快速指南
- MySQL 有用資源
- MySQL 討論
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 |