假如我想模糊查询一个字段中带有百分号“%”
模糊查询我们一般都这么写
select * from student where address like '%待查询的字符串%'
如果 待查询的字符串==% 那么
select * from student where address like '%%%'
结果导致把表中的所有的行就查询出来了,没有达到预期效果后来考虑到使用函数charindex(),也是可以解决的,但是如果这样一来like岂不是要被抛弃掉了?
请高手们赐教?
模糊查询我们一般都这么写
select * from student where address like '%待查询的字符串%'
如果 待查询的字符串==% 那么
select * from student where address like '%%%'
结果导致把表中的所有的行就查询出来了,没有达到预期效果后来考虑到使用函数charindex(),也是可以解决的,但是如果这样一来like岂不是要被抛弃掉了?
请高手们赐教?
解决方案 »
- 求 大数据量 分割字符串,列转行 解决方法
- Sql触发器问题,跪求高手指点。。
- |zyciis| 在数据库设计的时候,当有一个字段代码为商品代码的时候,还有必要添加ID字段吗,谢谢 急
- mssql单个表备份问题?
- SQL2000 共享锁将会带来哪些影响?
- 求救!~
- 我刚安装SQL Server 无法连接到服务器 我是菜鸟 不要见笑哦
- 关于sqlserver2000批量插入语句
- 请教一个困扰了我很久的问题
- 请问是不是各种数椐库开发工具都使用自己的增强SQL语句如 MSSQLServer的Transact SQL,刚开始接触数据库,是看标准的SQL呢,还是选一种呢?
- 在储存过程里怎样写删除IP表内两天前的数据?
- 交叉表的问题??
LIKE '5[%]' 5%
LIKE '[_]n' _n
LIKE '[a-cdf]' a、b、c、d 或 f
LIKE '[-acdf]' -、a、c、d 或 f
LIKE '[ [ ]' [
LIKE ']' ]
LIKE 'abc[_]d%' abc_d 和 abc_de
LIKE 'abc[def]' abcd、abce 和 abcf
可搜索包含一个或多个特殊通配符的字符串。例如,customers 数据库中的 discounts 表可能存储含百分号 (%) 的折扣值。若要搜索作为字符而不是通配符的百分号,必须提供 ESCAPE 关键字和转义符。例如,一个样本数据库包含名为 comment 的列,该列含文本 30%。若要搜索在 comment 列中的任何位置包含字符串 30% 的任何行,请指定由 WHERE comment LIKE '%30!%%' ESCAPE '!' 组成的 WHERE 子句。如果不指定 ESCAPE 和转义符,SQL Server 将返回所有含字符串 30 的行。下例说明如何在 pubs 数据库 titles 表的 notes 列中搜索字符串"50% off when 100 or more copies are purchased":USE pubs
GO
SELECT notes
FROM titles
WHERE notes LIKE '50%% off when 100 or more copies are purchased'
ESCAPE '%'
GO
Insert into @s
select 'dfdfdf'
union select 'dfd%888888'
union select 'ooooooooo'select * from @s where address like '%[%]%' --[]引起来
insert @t(name)
select '123%456' union all
select '123%%456' union all
select '123456' select * from @t where name like '%[%]%' /*使用界定符*/
select * from @t where name like '%!%%' escape '!' /*使用转义符*//*
id name
1 123%456
2 123%%456
*/