在MariaDB中,當操作需要完全匹配時,LIKE
子句與SELECT
語句一起使用來檢索資料。它可以與SELECT
,INSERT
,UPDATE
和DELETE
語句一起使用。
它用於模式匹配並返回true
或false
。用於比較的模式接受以下萬用字元:
"%"
萬用字元:匹配字元數(0或更多)。"_"
萬用字元:匹配單個字元。它匹配其集合中的字元。語法:
SELECT field, field2,... FROM table_name, table_name2,...
WHERE field LIKE condition
假設我們有一個students
表,並有以下資料。
MariaDB [testdb]> select * from students;
+------------+--------------+-----------------+----------------+
| student_id | student_name | student_address | admission_date |
+------------+--------------+-----------------+----------------+
| 1 | Maxsu | Haikou | 2017-01-07 |
| 3 | JMaster | Beijing | 2016-05-07 |
| 4 | Mahesh | Guangzhou | 2016-06-07 |
| 5 | Kobe | Shanghai | 2016-02-07 |
| 6 | Blaba | Shengzhen | 2016-08-07 |
| 7 | Maxsu | Sanya | 2017-08-08 |
+------------+--------------+-----------------+----------------+
6 rows in set (0.00 sec)
現在想要查詢那些名字以Ma
字母開頭的所有學生資訊,那麼就可以使用LIKE
條件的%
萬用字元來查詢所有以Ma
開頭的名字。參考以下查詢語句 -
SELECT student_name
FROM students
WHERE student_name LIKE 'Ma%';
執行上面查詢語句,得到以下結果 -
MariaDB [testdb]> SELECT student_name
-> FROM students
-> WHERE student_name LIKE 'Ma%';
+--------------+
| student_name |
+--------------+
| Maxsu |
| Mahesh |
| Maxsu |
+--------------+
3 rows in set (0.07 sec)
也可以在同一個字串中多次使用%
萬用字元。例如,要查詢名字中包含'Ma'
字元的所有記錄 -
SELECT student_name
FROM students
WHERE student_name LIKE '%Ma%';
執行上面查詢語句,得到以下結果 -
MariaDB [testdb]> SELECT student_name
-> FROM students
-> WHERE student_name LIKE '%Ma%';
+--------------+
| student_name |
+--------------+
| Maxsu |
| JMaster |
| Mahesh |
| Maxsu |
+--------------+
4 rows in set (0.00 sec)
使用帶LIKE
條件的萬用字元。`(下劃線)萬用字元只檢查一個字元。下面語句將查詢名字為
「Max_u」`的學生資訊。
SELECT *
FROM students
WHERE student_name LIKE 'Max_u';
執行上面查詢語句,得到以下結果 -
MariaDB [testdb]> SELECT *
-> FROM students
-> WHERE student_name LIKE 'Max_u';
+------------+--------------+-----------------+----------------+
| student_id | student_name | student_address | admission_date |
+------------+--------------+-----------------+----------------+
| 1 | Maxsu | Haikou | 2017-01-07 |
| 7 | Maxsu | Sanya | 2017-08-08 |
+------------+--------------+-----------------+----------------+
2 rows in set (0.00 sec)
在MariaDB中,LIKE
子句可以使用NOT
運算子。在NOT
運算子中使用%
萬用字元。 在這個範例中,將是查詢名字不是以"Ma"
開頭的所有學生資訊。
SELECT *
FROM students
WHERE student_name NOT LIKE 'Ma%';
執行上面查詢語句,得到以下結果 -
MariaDB [testdb]> SELECT *
-> FROM students
-> WHERE student_name NOT LIKE 'Ma%';
+------------+--------------+-----------------+----------------+
| student_id | student_name | student_address | admission_date |
+------------+--------------+-----------------+----------------+
| 3 | JMaster | Beijing | 2016-05-07 |
| 5 | Kobe | Shanghai | 2016-02-07 |
| 6 | Blaba | Shengzhen | 2016-08-07 |
+------------+--------------+-----------------+----------------+
3 rows in set (0.00 sec)