上一篇
"小王最近接手了一个图书管理系统的优化工作,老板要求他实现一个功能:用户输入书名片段时,系统要能自动联想出相关书籍,比如输入'数据',就要显示《数据库原理》《大数据分析》等书籍,这可难倒了刚入门SQL的小王..."
别担心!今天我们就来揭秘SQLite中Like子句的妙用,让你的模糊查询从此得心应手!✨
SELECT 列名 FROM 表名 WHERE 列名 LIKE '模式';
这个简单的语法藏着大智慧!两个通配符是核心:
_
代表单个字符 举个🌰:
-- 查找所有以"数据"开头的书名 SELECT * FROM books WHERE title LIKE '数据%'; -- 查找包含"分析"的书名(前后可以有任意内容) SELECT * FROM books WHERE title LIKE '%分析%'; -- 查找第三个字是"库"的五字书名 SELECT * FROM books WHERE title LIKE '__库__';
SQLite默认区分大小写,但可以通过COLLATE NOCASE
解决:
-- 不区分大小写匹配"sql" SELECT * FROM books WHERE title LIKE '%sql%' COLLATE NOCASE;
想查找包含或_
?用ESCAPE
指定转义符:
-- 查找包含"5%"折扣的书籍 SELECT * FROM books WHERE discount LIKE '%5/%%' ESCAPE '/';
LIKE '%关键字%'
会导致全表扫描,大数据量时建议:
'关键字%'
形式 假设有个员工表employees
,我们来玩点花样:
-- 1. 查找所有姓"张"的员工(中文场景) SELECT * FROM employees WHERE name LIKE '张%'; -- 2. 查找手机号以"138"开头的员工 SELECT * FROM employees WHERE phone LIKE '138%'; -- 3. 查找邮箱第二个字符是"a"的员工 SELECT * FROM employees WHERE email LIKE '_a%'; -- 4. 复合条件:姓张且手机号包含"888" SELECT * FROM employees WHERE name LIKE '张%' AND phone LIKE '%888%';
LIKE
无法匹配NULL值,要用IS NULL
搭配其他SQL功能更强大:
-- 结合ORDER BY排序 SELECT * FROM products WHERE name LIKE '%手机%' ORDER BY price DESC; -- 搭配LIMIT分页 SELECT * FROM logs WHERE content LIKE '%error%' LIMIT 10 OFFSET 20;
Like子句就像数据库中的"搜索引擎",掌握它就能:
✅ 实现智能搜索提示
✅ 处理不完整数据查询
✅ 构建灵活的筛选条件
下次遇到模糊查询需求时,记得掏出这个神器哦!🎯 现在小王已经完美解决了图书搜索功能,你也快来试试吧!
(本文SQLite语法参考版本:3.35+,最后更新:2025年8月)
本文由 何秋白 于2025-08-01发表在【云服务器提供商】,文中图片由(何秋白)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/507402.html
发表评论