在 SQL 中,模糊匹配通常使用 LIKE、通配符,以及部分数据库支持的 正则表达式。下面按常见场景说明。
LIKE 做模糊匹配(最常用)| 通配符 | 含义 |
|---|---|
% |
任意长度字符(0 个或多个) |
_ |
任意单个字符 |
SELECT * FROM user WHERE name LIKE '%张%';
匹配:张三、小张、张、李张伟
SELECT * FROM user WHERE name LIKE '张%';
匹配:张三、张伟
SELECT * FROM user WHERE name LIKE '%三';
匹配:张三、王三
SELECT * FROM user WHERE name LIKE '张__';
匹配:张三丰(3 个字)
SELECT * FROM user WHERE name LIKE '%abc%';
SELECT * FROM user WHERE LOWER(name) LIKE '%abc%';
NOT LIKE 反向匹配SELECT * FROM user WHERE name NOT LIKE '%测试%';
SELECT * FROM user WHERE name REGEXP '^张|三$';
SELECT * FROM user WHERE name ~ '^张';
SELECT * FROM user WHERE REGEXP_LIKE(name, '张.');
LIKE '%xx' 无法使用索引LIKE 'xx%'FULLTEXT,ES 等)如果你告诉我:
我可以帮你写更合适的 SQL。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。