问下,为什么like '%[资讯](上海)南西街道建立居民小区废品回收站%' 查询不到记录呢?

DiligencyMan 2008-12-02 03:51:00

查询分析器执行如下:

select * from info_details where title like '%[资讯](上海)南西街道建立居民小区废品回收站%'
查不到记录

select * from info_details where title like '%南西街道建立居民小区废品回收站%'
查到一条记录
...全文
172 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
flairsky 2008-12-03
  • 打赏
  • 举报
回复
包含了【】
cxmcxm 2008-12-02
  • 打赏
  • 举报
回复
方括号问题
改为 like '%[[资讯]](上海)南西街道建立居民小区废品回收站%'
l413279014 2008-12-02
  • 打赏
  • 举报
回复
'[资讯]'改写成'[[]资讯[]]'
yw1688 2008-12-02
  • 打赏
  • 举报
回复
mark
昵称被占用了 2008-12-02
  • 打赏
  • 举报
回复
reolace
--〉
replace
昵称被占用了 2008-12-02
  • 打赏
  • 举报
回复
明确下,只有[需要转义,]不用

另一个转移的方法

declare @s table(col varchar(100))
insert @s select '[资讯](上海)南西街道建立居民小区废品回收站'
insert @s select '资讯(上海)南西街道建立居民小区废品回收站'

select * from @s where col like '%[[]资讯](上海)南西街道建立居民小区废品回收站%'

declare @str varchar(100)
set @str='%[资讯](上海)南西街道建立居民小区废品回收站%'
set @str=REPLACE(@str,'[','[[]')
select * from @s where col like @str


其中reolace方法可以想法在客户端实现
viva369 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 fcuandy 的回复:]
[]会把里面的内容当作匹配字符列表用,要转义。
[/Quote]
fcuandy 2008-12-02
  • 打赏
  • 举报
回复
[]会把里面的内容当作匹配字符列表用,要转义。
oraclelogan 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wufeng4552 的回复:]
SQL codedeclare @t table([address] nvarchar(200))
insert @t select N'[资讯](上海)南西街道建立居民小区废品回收站'
select * from @t where [address] like N'%[资讯](上海)南西街道建立居民小区废品回收站%' escape '['
/*address …
[/Quote]

正解啊!
oraclelogan 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 happyflystone 的回复:]
SQL codedeclare @s table(col varchar(100))
insert @s select '[资讯](上海)南西街道建立居民小区废品回收站'
--insert @s select '资讯(上海)南西街道建立居民小区废品回收站'

select * from @s where col like '%[资讯](上海)南西街道建立居民小区废品回收站%' ESCAPE '[' ;
select * from @s where col like '%南西街道建立居民小区废品回收站%';
select * from @s where col like '%(上海)南西街道建立居民小区废品…
[/Quote]

正解啊!
dawugui 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 happyflystone 的回复:]
declare @s table(col varchar(100))
insert @s select '[资讯](上海)南西街道建立居民小区废品回收站'
--insert @s select '资讯(上海)南西街道建立居民小区废品回收站'

select * from @s where col like '%[资讯](上海)南西街道建立居民小区废品回收站%' ESCAPE '[' ;
select * from @s where col like '%南西街道建立居民小区废品回收站%';
select * from @s where col like '%(上海)南西街道建立居民小区废品回收站%' ;


/*
col
----------------------------------------------------------------------------------------------------
[资讯](上海)南西街道建立居民小区废品回收站

(1 行受影响)

col
----------------------------------------------------------------------------------------------------
[资讯](上海)南西街道建立居民小区废品回收站

(1 行受影响)

col
----------------------------------------------------------------------------------------------------
[资讯](上海)南西街道建立居民小区废品回收站

(1 行受影响)

*/
[/Quote]

同意这个.
lonlyhawk 2008-12-02
  • 打赏
  • 举报
回复
学习
-狙击手- 2008-12-02
  • 打赏
  • 举报
回复
declare @s table(col varchar(100))
insert @s select '[资讯](上海)南西街道建立居民小区废品回收站'
--insert @s select '资讯(上海)南西街道建立居民小区废品回收站'

select * from @s where col like '%[资讯](上海)南西街道建立居民小区废品回收站%' ESCAPE '[' ;
select * from @s where col like '%南西街道建立居民小区废品回收站%';
select * from @s where col like '%(上海)南西街道建立居民小区废品回收站%' ;


/*
col
----------------------------------------------------------------------------------------------------
[资讯](上海)南西街道建立居民小区废品回收站

(1 行受影响)

col
----------------------------------------------------------------------------------------------------
[资讯](上海)南西街道建立居民小区废品回收站

(1 行受影响)

col
----------------------------------------------------------------------------------------------------
[资讯](上海)南西街道建立居民小区废品回收站

(1 行受影响)

*/
水族杰纶 2008-12-02
  • 打赏
  • 举报
回复
declare @t table([address] nvarchar(200))
insert @t select N'[资讯](上海)南西街道建立居民小区废品回收站'
select * from @t where [address] like N'%[资讯](上海)南西街道建立居民小区废品回收站%' escape '['
/*address
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[资讯](上海)南西街道建立居民小区废品回收站
*/
-狙击手- 2008-12-02
  • 打赏
  • 举报
回复
[] 要转义符
hyde100 2008-12-02
  • 打赏
  • 举报
回复
楼主 like 的原理还没弄明白?
hyde100 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 DiligencyMan 的帖子:]


SQL code查询分析器执行如下:

select * from info_details where title like '%[资讯](上海)南西街道建立居民小区废品回收站%'
查不到记录

select * from info_details where title like '%南西街道建立居民小区废品回收站%'
查到一条记录
[/Quote]

有可能啊,可能数据为'%上海)南西街道建立居民小区废品回收站%',就会产生上面的效果
csdyyr 2008-12-02
  • 打赏
  • 举报
回复

--[资讯]
-->必須有'资讯'
水族杰纶 2008-12-02
  • 打赏
  • 举报
回复
select * from info_details where title like N'%[资讯](上海)南西街道建立居民小区废品回收站%'
DiligencyMan 2008-12-02
  • 打赏
  • 举报
回复
这是为什么呢?

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧