电脑学堂
第二套高阶模板 · 更大气的阅读体验

SQL模糊查询:快速找对数据的小妙招

发布时间:2025-12-11 11:07:55 阅读:43 次

SQL模糊查询:快速找对数据的小妙招

在处理大量数据时,你是不是经常遇到记不清完整信息的情况?比如客户名字只记得姓张,或者产品名称里有个“红”字但想不起全名。这时候精确查找就不太管用了,得靠SQL的模糊查询来帮忙。

SQL中的模糊查询用的是LIKE关键字,配合两个通配符:% 和 _ 。%代表任意数量的字符(包括零个),_ 代表单个字符。这两个小符号一上场,查数据就像用搜索引擎打关键词一样灵活。

用%匹配多个字符

假设你有一张用户表user_info,想找出所有姓“李”的用户,可以这样写:

SELECT * FROM user_info WHERE name LIKE '李%';

这条语句会把“李白”“李娜”“李志明”全都筛出来。反过来,如果你想查名字最后一个字是“强”的人,写成'%强'就行。

中间含某个字也可以查。比如找名字带“小”的,直接用'%小%'包裹起来:

SELECT * FROM user_info WHERE name LIKE '%小%';

用_匹配单个字符

如果你知道名字是两个字,第一个是“王”,第二个不确定,可以用下划线代替一个字符:

SELECT * FROM user_info WHERE name LIKE '王_';

这样“王芳”“王伟”能查到,但“王建国”就不会出现,因为它超长了。

再比如查手机号第二位是5的用户,手机号是11位,可以用一个下划线代表第一位,然后锁定第二位:

SELECT * FROM user_info WHERE phone LIKE '_5%';

结合其他条件更高效

模糊查询不是只能单打独斗。它可以和AND、OR这些逻辑条件搭配使用。比如想找姓“陈”并且邮箱包含“qq”的用户:

SELECT * FROM user_info WHERE name LIKE '陈%' AND email LIKE '%qq%';

实际工作中,报表数据动辄上千行,手动翻太费劲。掌握LIKE的用法,几秒钟就能定位目标记录,省下的时间喝杯咖啡不香吗?

注意,模糊查询虽然方便,但如果数据量特别大,像在千万级表里用%开头的模式(如'%abc'),可能会变慢,因为没法有效利用索引。这时候可以考虑结合全文搜索或缓存策略优化。