MySQL LIKE 操作符


MySQL LIKE可以在SELECT,INSERT,UPDATE或DELETE语句的WHERE子句中使用通配符。这样就可以通过模式匹配指定筛选条件。

语法

MySQL中LIKE条件的语法为:

1
expression LIKE pattern [ ESCAPE 'escape_character' ]
参数 说明
expression 字符表达式,例如列或字段。
pattern 包含模式匹配的字符表达式。
通配符%表示允许匹配任何长度(包括零长度)的任何字符串
通配符_表示可以您匹配单个字符
escape_character 可选的。指定转义字符,默认是 \

MySQL LIKE 操作符示例

示例-使用%通配符

假设要查找所有last_name以'Sm'开头的客户。

1
2
3
SELECT customer_name
FROM customers
WHERE last_name LIKE 'Sm%';

可以在同一字符串中多次使用 百分号通配符%。例如,

1
2
3
SELECT customer_name
FROM customers
WHERE last_name LIKE '%it%';

查找所有last_name包含字符“it”的客户。

示例-使用_通配符(下划线通配符)

请记住,_通配符仅匹配一个字符。

1
2
3
SELECT supplier_name
FROM suppliers
WHERE supplier_name LIKE 'Sm_th';

将返回其Supplier_name为5个字符长的所有供应商,其中前两个字符为“ Sm”,后两个字符为“ th”。
例如,它可以返回其Supplier_name为'Smith','Smyth','Smath','Smeth'等的供应商。

这是另一个示例:

1
2
3
SELECT *
FROM suppliers
WHERE account_number LIKE '12345_';

查找6位账号中前5位为12345的供应商。

示例-使用NOT运算符

让我们看一下如何将%通配符与NOT运算符一起使用。

1
2
3
SELECT supplier_name
FROM suppliers
WHERE supplier_name NOT LIKE 'G%';

查找supplier_name不以“G”开头的供应商。

示例-使用转义符

如果搜索条件下包含 *%或者_*字符,那么就要用转义字符。默认是反斜杠 \

1
2
3
SELECT *
FROM suppliers
WHERE supplier_name LIKE 'G\%';

该语句将返回Supplier_name以 G%开头的所有供应商。

通过ESCAPE修饰符将默认转义符进行修改:
结果和上面的SELECT语句是一样的。

1
2
3
SELECT *
FROM suppliers
WHERE supplier_name LIKE 'G!%' ESCAPE '!';
1
2
3
SELECT *
FROM suppliers
WHERE supplier_name LIKE 'H%\_';

此示例将返回其Supplier_name以H开头和_结束的所有供应商。


原文链接:https://codingdict.com/