MariaDB Like子句
在MariaDB中,當操作需要完全匹配時,LIKE
子句與SELECT
語句一起使用來檢索數據。它可以與SELECT
,INSERT
,UPDATE
和DELETE
語句一起使用。
它用於模式匹配並返回true
或false
。用於比較的模式接受以下通配符:
-
"%"
通配符:匹配字符數(0或更多)。 -
"_"
通配符:匹配單個字符。它匹配其集合中的字符。
語法:
SELECT field, field2,... FROM table_name, table_name2,...
WHERE field LIKE condition
1. 使用%通配符(百分號通配符)
假設我們有一個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)
2. 使用_通配符(下劃線通配符)
使用帶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)
3. LIKE子句使用NOT運算符
在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)