like

like 运算符:对字符串进行模糊查询

XX like '要查询的内容';

两个特殊符号:%:任何个数的任何字符

_:下杠,代表一个任何字符

select * from user where name like '%小明%';

 

常见示例及含义:

name  like  ‘%罗%’:         表示name中“罗”这一个字的所有数据行;

name  like  ‘罗%’:            表示name中以“罗”开头的所有数据行;比如:罗兰,

name  like  ‘%罗’:            表示name中以“罗”结尾的所有数据行;比如:C罗,魂斗罗

name  like  ‘罗_’:            表示name中以“罗”开头并只有2个字符的所有数据行;比如:罗兰

name  like  ‘_罗’:            表示name中以“罗”结尾并只有2个字符的所有数据行;比如:C罗

一个新的问题:

如果我要找某个字段中含“%”(或_)的行,怎么办?转义就ok:

\%   :表示%这个字符本身

\_    :表示_这个字符本身

例:

XX  like  ‘%\%%’;           表示XX中含有百分号(%)这个字符的所有行;

### SQL LIKE 运算符概述 SQL `LIKE` 运算符是一种强大的工具,专门用于执行基于模式的数据匹配和模糊查询操作。此运算符通常与 `SELECT` 语句一起使用来过滤记录,其基本语法结构如下: ```sql SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern; ``` 通过上述命令可以在特定列中寻找符合给定模式的条目[^1]。 ### 使用通配符增强灵活性 为了增加搜索条件的弹性,`LIKE` 支持四种主要类型的通配符:百分号 `%`, 下划线 `_`, 方括号内的字符集 `[char_list]` 和否定前缀 `[^]`。这些符号允许创建更复杂的查询逻辑以适应不同需求[^3]。 #### 百分号 `%` 代表任意数量(包括零个)字符的存在与否。例如,想要找到所有姓氏以字母"A"开头的客户,则可编写如下查询: ```sql SELECT * FROM Customers WHERE CustomerName LIKE 'A%'; ``` 这会返回任何名字起始于“A”的顾客信息[^4]。 #### 下划线 `_` 表示单个未知字符的位置。如果目标是从员工表里找出职位名称恰好由六个字母组成的职员名单,那么应该这样写: ```sql SELECT * FROM Employees WHERE JobTitle LIKE '______'; ``` 这里假设下划线的数量正好对应所需长度[^2]。 #### 字符集合 `[char_list]` 及 否定形式 `[^char_list]` 前者用来限定某个位置上的可能值范围;后者则是排除某些不希望出现的结果。比如,在产品目录中检索既不是红色也不是蓝色的商品类别编号,就可以这样做: ```sql SELECT CategoryID FROM Products WHERE Color NOT LIKE '[RB]%' AND Color NOT LIKE ''; ``` 注意这里的方括号内包含了两个大写字母R()B(),而后面的百分号意味着后面还可以跟随其他任意数目的字符。 ### 实际应用场景举例 考虑这样一个实际案例——在一个名为Customers的大规模关系型数据库表格里面定位那些电子邮件地址中含有"@example.com"结尾的所有联系人资料。此时应当采用以下方式构建查询表达式: ```sql SELECT ContactEmail FROM Customers WHERE ContactEmail LIKE '%@example.com'; ``` 这段代码将会精确命中并提取出满足该邮件域格式的所有记录项。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值