MySQL 中的 LIKE 子句是一个非常有用的工具,用于在 SELECT, UPDATE, INSERT, DELETE 语句中根据特定模式搜索数据。
LIKE 子句使用两个通配符:
- 百分号
%:代表零个、一个或多个字符。 - 下划线
_:代表一个单一的字符。
以下是一些示例:
- 要选取 name 列以字母"a"开头的所有列,你可以使用:
SELECT * FROM table_name WHERE name LIKE 'a%';
- 要选取 name 列以 "on" 结尾的所有列,你可以使用:
SELECT * FROM table_name WHERE name LIKE '%on';
- 要选取 name 列包含 "on" 的所有列,你可以使用:
SELECT * FROM table_name WHERE name LIKE '%on%';
- 要选取 name 列第三个字母是 "a" 的所有列,你可以使用:
SELECT * FROM table_name WHERE name LIKE '__a%';
以上下划线__代表两个字符。
请注意,LIKE 子句是大小写不敏感的。如果你想进行大小写敏感的比较,可以使用 BINARY 关键词,如:
SELECT * FROM table_name WHERE BINARY name LIKE 'a%';
此查询会返回所有以字母 "a"(小写)开头的行,而忽略以字母 "A"(大写)开头的行。
LIKE 是一个强大的工具,尤其是当你需要基于不完全匹配进行搜索时。在进行模式搜索时,请一定要理解防止 SQL 注入的重要性,并采取适当的防护措施。