当前位置: 首页 > 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.jsqmd.com/news/43608/

相关文章:

  • 区块链交易所中心化架构与风控体系详解
  • 2025年国内锯床公司权威排名榜单:成都鸿远机械有限公司排名首位
  • 2025 最新软著申请公司推荐!计算机 / 企业 / 个人软著申请代办权威榜单,一站式高效办理代理服务机构口碑排行榜
  • 2025成都留学机构十大排名
  • 留学找代写被抓影响学业?2025年靠谱处理机构盘点:学术危机应对/名校沟通/记录消除服务测评
  • show 语法
  • 2025 年无锡短视频拍摄公司推荐,企拓网络 14 年深耕新媒体营销,短视频全案运营赋能企业高效拓客
  • 2025美国大学处分申诉高成功率中介TOP5:厚仁/新通领衔护航留学路,高胜诉率机构全解析
  • 罗氏线圈积分技术:从理论到工程的精确电流重构
  • linux android 环境变量
  • linux android 搭建
  • AI 十大论文精讲(五):RAG——让大模型 “告别幻觉、实时更新” 的检索增强生成秘籍
  • 2025年贴标机生产厂家权威推荐榜单:直角贴标机/自动贴标机/矿泉水贴标机源头厂家精选
  • AI 十大论文精讲(三):RLHF 范式奠基 ——InstructGPT 如何让大模型 “听懂人话”
  • 2025年双车道双翻集装箱翻转机厂家权威推荐榜单:20吨集装箱翻转机/双车道单翻集装箱翻转机/40尺集装箱翻转机源头厂家精选
  • springboot~通过集成测试来理解Accept和Content-Type
  • 【LVGL】圆弧部件
  • 【马来西亚理工大学主办,SPIE出版】2025年量子计算与通信技术国际学术会议(ICQCT 2025)
  • 大数据毕业设计:python新闻数据可视化分析系统 时间序列预测算法 ARIMA预测模型 机器学习 爬虫 SnowNLP情感分析(源码+文档)✅ - 详解
  • 详细介绍:Next steps for BPF support in the GNU toolchain
  • 2025年电机生产流水线实力厂家权威推荐:电机生产线/无刷电机自动生产线/电机自动化生产源头厂家精选
  • 2025出国留学机构有哪些
  • 2025成都留学中介机构排名前十
  • 2025美国留学开除处理机构推荐,靠谱申诉/转学/身份保障服务哪家好
  • [题解]BYOI Round 1 T1~T2
  • 【马来亚大学主办,SPIE出版,快至会后4个月检索】2025年医学图像处理与识别国际会议(IPOR 2025)
  • 2025年不锈钢垃圾桶实力厂家权威推荐榜单:金属垃圾桶源头厂家精选
  • 深入解析:Tauri 1.x和2.x的区别对照表
  • C#Lazy
  • 加氢站安全监测选型:别让传感器成为你的定时炸弹