当前位置: 首页 > news >正文

21、LIKE 子句详解

1、LIKE 子句

用于进行字符串模糊匹配的操作符,通常与通配符配合在 WHERE 子句中使用。

通过指定匹配规则筛选符合条件的数据记录

语法:  

SELECT 列名 FROM 表名 WHERE 列名 LIKE '模式';
  • %:匹配任意长度的字符序列(包括空序列),如 LIKE 'N%' 可筛选以 N 开头的字符串   前缀匹配

  • _:匹配任意单个字符,如 LIKE '_am' 可以匹配 "Tam"、"Mam" 等,精确位置匹配

  • [] :用于匹配指定范围内的单个字符,例如 LIKE '[A-C]%' 会匹配以 A、B 或 C 开头的字符串

例子:

使用 % 通配符

-- 匹配以 'John' 开头的所有名字
SELECT * FROM users WHERE name LIKE 'John%';
-- 匹配: John, Johnny, Johnson
-- 不匹配: MrJohn, ajohn-- 匹配以 'son' 结尾的所有名字
SELECT * FROM users WHERE name LIKE '%son';
-- 匹配: Johnson, Jackson, Wilson
-- 不匹配: sonny, Andersonx-- 匹配包含 'admin' 的所有字符串
SELECT * FROM users WHERE role LIKE '%admin%';
-- 匹配: admin, administrator, sysadmin, admin_user-- 匹配以 'A' 开头,以 'Z' 结尾的字符串
SELECT * FROM products WHERE name LIKE 'A%Z';
-- 匹配: AMAZ, A123Z, AQuickZ
-- 不匹配: AZB, A Z, A_-- 匹配包含 'data' 且以 'base' 结尾
SELECT * FROM systems WHERE name LIKE '%data%base';
-- 匹配: database, mydatabase, databasenamebase

使用 _ 通配符

-- 匹配正好5个字符的名字
SELECT * FROM users WHERE name LIKE '_____';
-- 匹配: Alice, Bob12, User1
-- 不匹配: Al, Bob, User123-- 匹配第二个字符是 'o' 的所有名字
SELECT * FROM users WHERE name LIKE '_o%';
-- 匹配: John, Robert, coding
-- 不匹配: Bob, admin, root-- 匹配第一个字符任意,后面是 'at' 的所有单词
SELECT * FROM words WHERE word LIKE '_at';
-- 匹配: cat, bat, hat, rat
-- 不匹配: at, chat, batch-- 复杂的模式匹配
SELECT * FROM products WHERE code LIKE 'A_B_C%';
-- 匹配: A1B2C3, AxByCzProduct, A-B-C-D
-- 不匹配: ABC, A_B_C, A1C2B3

复杂模式匹配

-- 匹配以 'user' 开头,后面跟一个数字,然后任意字符
SELECT * FROM accounts WHERE username LIKE 'user_%';
-- 匹配: user1, user2admin, user_test
-- 不匹配: user, users, adminuser1-- 匹配包含数字的电子邮件
SELECT * FROM users WHERE email LIKE '%[0-9]%@%';
-- 匹配: user123@gmail.com, john2023@company.com
-- 不匹配: john@gmail.com, admin@test.org-- 匹配特定格式的电话号码
SELECT * FROM contacts WHERE phone LIKE '+1-___-___-____';
-- 匹配: +1-123-456-7890, +1-555-123-4567
-- 不匹配: 123-456-7890, +1-12-345-6789-- 匹配文件扩展名
SELECT * FROM files WHERE filename LIKE '%.pdf' OR filename LIKE '%.doc%';
-- 匹配: document.pdf, manual.doc, guide.docx
-- 不匹配: image.png, data.txt

2、NOT LIKE 字句

排除特定模式

-- 排除所有以 'test' 开头的用户
SELECT * FROM users WHERE username NOT LIKE 'test%';-- 排除包含 'admin' 的角色
SELECT * FROM users WHERE role NOT LIKE '%admin%';-- 排除单个字符的缩写
SELECT * FROM products WHERE code NOT LIKE '_';-- 排除临时文件(以 ~ 或 .tmp 结尾)
SELECT * FROM documents WHERE filename NOT LIKE '%~' AND filename NOT LIKE '%.tmp';-- 复杂的排除逻辑
SELECT * FROM logs 
WHERE message NOT LIKE '%ERROR%' AND message NOT LIKE '%FAILED%'AND message NOT LIKE '%CRITICAL%';

 

 
 
 
http://www.rkmt.cn/news/53090.html

相关文章:

  • 2025年国内锯床公司权威排名榜单:成都鸿远机械有限公司排名首位
  • 2025成都留学机构十大排名
  • show 语法
  • 罗氏线圈积分技术:从理论到工程的精确电流重构
  • linux android 搭建
  • AI 十大论文精讲(五):RAG——让大模型 “告别幻觉、实时更新” 的检索增强生成秘籍
  • 2025年耐高压硅胶线批发厂家权威推荐榜单:硅胶线哪家质量好/硅胶多芯线/陶瓷化硅胶线源头厂家精选
  • AI 十大论文精讲(三):RLHF 范式奠基 ——InstructGPT 如何让大模型 “听懂人话”
  • 【LVGL】圆弧部件
  • 2025年电机生产流水线实力厂家权威推荐:电机生产线/无刷电机自动生产线/电机自动化生产源头厂家精选
  • [题解]BYOI Round 1 T1~T2
  • 服务器接口调用微信小程序获取手机号接口报:The SSL connection could not be established, see inner exception.
  • 2025留学美国被开除怎么办?申诉挽回/学业急救/身份保留/转学规划/签证补救机构哪家强
  • WPS用Qt还情有可原
  • 2025年评价高的UV 软膜广告灯箱厂家最新TOP排行
  • 2025年山西口碑好的纪念馆展示柜定制厂家排行Top10推荐
  • C# 14 新功能全面解析:提升生产力与性能的革命性更新
  • 2025年优秀的软件行业体系认证三体系认证品牌实力推荐榜
  • 2025年11月中国枸杞企业口碑推荐榜单
  • 学业危机速看!2025美国紧急转学机构哪家好,学分对接/院校适配全解析
  • 探索Word2Vec:从文本向量化到中文语料处理 - 指南
  • 基于DeepSeek-R1 15b微调训练自主的领域大模型,附带工程代码
  • CF2161D题解
  • linux address
  • Flutter 登录状态管理与 Token 持久化方案
  • 经济越差,越是好产品脱颖而出的时候
  • 实用指南:DevOps 生命周期完全指南
  • 算法第三章实践作业
  • 2025年比较好的茶叶烘干网带行业内口碑厂家排行榜
  • 2025年热门的保健托玛琳床垫厂家选购指南与推荐