温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SQL模糊匹配如何做

发布时间:2026-09-16 13:36:17 来源:亿速云 阅读:91 作者:小樊 栏目:数据库

在 SQL 中,模糊匹配通常使用 LIKE通配符,以及部分数据库支持的 正则表达式。下面按常见场景说明。


一、使用 LIKE 做模糊匹配(最常用)

1️⃣ 常用通配符

通配符 含义
% 任意长度字符(0 个或多个)
_ 任意单个字符

2️⃣ 常见示例

✅ 包含某字符

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 个字)


二、忽略大小写(取决于数据库)

MySQL(默认不区分大小写)

SELECT * FROM user WHERE name LIKE '%abc%';

强制忽略大小写

SELECT * FROM user WHERE LOWER(name) LIKE '%abc%';

三、使用 NOT LIKE 反向匹配

SELECT * FROM user WHERE name NOT LIKE '%测试%';

四、正则表达式(更强模糊匹配)

MySQL

SELECT * FROM user WHERE name REGEXP '^张|三$';

PostgreSQL

SELECT * FROM user WHERE name ~ '^张';

Oracle

SELECT * FROM user WHERE REGEXP_LIKE(name, '张.');

五、性能注意 ⚠️

  • LIKE '%xx' 无法使用索引
  • 推荐:
    • 前缀匹配:LIKE 'xx%'
    • 全文检索(MySQL:FULLTEXT,ES 等)

如果你告诉我:

  • 使用的数据库(MySQL / Oracle / PostgreSQL)
  • 具体匹配场景(手机号、姓名、地址等)

我可以帮你写更合适的 SQL

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI