在MariaDB中,當(dāng)操作需要完全匹配時(shí),LIKE子句與SELECT語(yǔ)句一起使用來(lái)檢索數(shù)據(jù)。它可以與SELECT,INSERT,UPDATE和DELETE語(yǔ)句一起使用。
它用于模式匹配并返回true或false。用于比較的模式接受以下通配符:
"%"通配符:匹配字符數(shù)(0或更多)。"_"通配符:匹配單個(gè)字符。它匹配其集合中的字符。語(yǔ)法:
SELECT field, field2,... FROM table_name, table_name2,...
WHERE field LIKE condition
假設(shè)我們有一個(gè)students表,并有以下數(shù)據(jù)。
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)
現(xiàn)在想要查詢那些名字以Ma字母開(kāi)頭的所有學(xué)生信息,那么就可以使用LIKE條件的%通配符來(lái)查找所有以Ma開(kāi)頭的名字。參考以下查詢語(yǔ)句 -
SELECT student_name
FROM students
WHERE student_name LIKE 'Ma%';
執(zhí)行上面查詢語(yǔ)句,得到以下結(jié)果 -
MariaDB [testdb]> SELECT student_name
-> FROM students
-> WHERE student_name LIKE 'Ma%';
+--------------+
| student_name |
+--------------+
| Maxsu |
| Mahesh |
| Maxsu |
+--------------+
3 rows in set (0.07 sec)
也可以在同一個(gè)字符串中多次使用%通配符。例如,要查詢名字中包含'Ma'字符的所有記錄 -
SELECT student_name
FROM students
WHERE student_name LIKE '%Ma%';
執(zhí)行上面查詢語(yǔ)句,得到以下結(jié)果 -
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條件的通配符。`(下劃線)通配符只檢查一個(gè)字符。下面語(yǔ)句將查詢名字為“Max_u”`的學(xué)生信息。
SELECT *
FROM students
WHERE student_name LIKE 'Max_u';
執(zhí)行上面查詢語(yǔ)句,得到以下結(jié)果 -
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運(yùn)算符。在NOT運(yùn)算符中使用%通配符。 在這個(gè)示例中,將是查詢名字不是以"Ma"開(kāi)頭的所有學(xué)生信息。
SELECT *
FROM students
WHERE student_name NOT LIKE 'Ma%';
執(zhí)行上面查詢語(yǔ)句,得到以下結(jié)果 -
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)