在 SQL 中,模糊查询通常使用 LIKE 关键字配合通配符来实现。
SELECT * FROM 表名
WHERE 字段名 LIKE '匹配规则';
| 通配符 | 含义 |
|---|---|
% |
任意长度字符(0 个或多个) |
_ |
任意一个字符 |
[abc] |
匹配 a、b、c 中任意一个(部分数据库支持) |
[^abc] |
不匹配 a、b、c(部分数据库支持) |
查询 name 中包含 "张" 的记录:
SELECT * FROM user
WHERE name LIKE '%张%';
查询 name 以 "李" 开头:
SELECT * FROM user
WHERE name LIKE '李%';
查询 name 以 "明" 结尾:
SELECT * FROM user
WHERE name LIKE '%明';
查询 code 为 3 个字符且以 A 开头:
SELECT * FROM product
WHERE code LIKE 'A__';
SELECT * FROM user
WHERE LOWER(name) LIKE '%abc%';
SELECT * FROM user
WHERE name NOT LIKE '%测试%';
如果查询内容中包含 % 或 _:
LIKE '50\%%' ESCAPE '\';
LIKE '%xxx' 无法使用索引,大表慎用'xxx%' 性能更好如果你用的是 MySQL / Oracle / SQL Server,或想结合 REGEXP、全文索引,我也可以给你更具体的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。