MySQL LIKE 操作符
时间:2019-02-04 12:52:25 来源:igfitidea点击:
MySQL LIKE可以在SELECT,INSERT,UPDATE或DELETE语句的WHERE子句中使用通配符。这样就可以通过模式匹配指定筛选条件。
语法
MySQL中LIKE条件的语法为:
expression LIKE pattern [ ESCAPE 'escape_character' ]
参数 | 说明 |
---|---|
expression | 字符表达式,例如列或字段。 |
pattern | 包含模式匹配的字符表达式。 通配符%表示允许匹配任何长度(包括零长度)的任何字符串 通配符_表示可以您匹配单个字符 |
escape_character | 可选的。指定转义字符,默认是 \ |
MySQL LIKE 操作符示例
示例-使用%通配符
假设要查找所有last_name以'Sm'开头的客户。
SELECT customer_name FROM customers WHERE last_name LIKE 'Sm%';
可以在同一字符串中多次使用 百分号通配符%。例如,
SELECT customer_name FROM customers WHERE last_name LIKE '%it%';
查找所有last_name包含字符“it”的客户。
示例-使用_通配符(下划线通配符)
请记住,_通配符仅匹配一个字符。
SELECT supplier_name FROM suppliers WHERE supplier_name LIKE 'Sm_th';
将返回其Supplier_name为5个字符长的所有供应商,其中前两个字符为“ Sm”,后两个字符为“ th”。
例如,它可以返回其Supplier_name为'Smith','Smyth','Smath','Smeth'等的供应商。
这是另一个示例:
SELECT * FROM suppliers WHERE account_number LIKE '12345_';
查找6位账号中前5位为12345的供应商。
示例-使用NOT运算符
让我们看一下如何将%通配符与NOT运算符一起使用。
SELECT supplier_name FROM suppliers WHERE supplier_name NOT LIKE 'G%';
查找supplier_name不以“G”开头的供应商。
示例-使用转义符
如果搜索条件下包含 *%或者_*字符,那么就要用转义字符。默认是反斜杠 \。
SELECT * FROM suppliers WHERE supplier_name LIKE 'G\%';
该语句将返回Supplier_name以 G%开头的所有供应商。
通过ESCAPE修饰符将默认转义符进行修改:
结果和上面的SELECT语句是一样的。
SELECT * FROM suppliers WHERE supplier_name LIKE 'G!%' ESCAPE '!';
SELECT * FROM suppliers WHERE supplier_name LIKE 'H%\_';
此示例将返回其Supplier_name以H开头和_结束的所有供应商。