注册 登录
编程论坛 SQL Server论坛

问了很多人都说不知道——关于查询内容带[]的问题

康师傅828 发布于 2007-09-03 16:38, 1143 次点击


我在做数据库时,遇到这样的问题:
假设有表MyTable,记录中有一个字段(假设叫XXX)有这样类似的数据:
  aaa[A]abcd
  aaa[AB]jdshf
  aab[A]dsf
  aaa[AC]ewr
  aaa[AA]tryk
  aab[AB]reji
   ……
我现在想查找所有含有“[A]”的数据。
我这样写的:SELECT * FROM MyTable WHERE XXX like "%aaa[A]%"
结果查找不到。怎么办?

12 回复
#2
purana2007-09-03 17:19
是不是要加个转义字符.
#3
sky_yang_sky2007-09-03 17:24
SELECT * FROM MyTable WHERE XXX like quotename('A', '[')
#4
sky_yang_sky2007-09-03 17:28
'%'+quotename('A', '[')+'%',你那種條件要用這個才行。我看成條件為[A]
#5
purana2007-09-03 17:29
在sql server里确实是这样..
不过我在mysql里试了..没有问题说..呵呵.
#6
康师傅8282007-09-04 10:34
sky_yang_sky的方法我试验了:
SELECT * FROM MyTable WHERE XXX like '%'+quotename('A')+'%'
可以找到所有含有“[A]”的记录,但:
SELECT * FROM MyTable WHERE XXX like '%aaa'+quotename('A')+'%'
却找不到所有含有“aaa[A]”的记录
问题还是没有解决

#7
sky_yang_sky2007-09-04 11:27
SELECT * FROM mytable WHERE XXX like '%'+quotename('A', '[')+'%'
or
select * from mytable where xxx like '%'+quotename('A')+'%'
這樣會查不出來,

[此贴子已经被作者于2007-9-4 11:50:27编辑过]

#8
sky_yang_sky2007-09-04 11:29

看錯了你的題目。不好意思

[此贴子已经被作者于2007-9-4 11:53:41编辑过]

#9
康师傅8282007-09-04 12:32
谁有办法解决啊!!!
#10
thllilac2007-09-10 10:30

创建一个临时表撒……
create table test
(
sname nvarchar(20),
sage int
)

insert into test values('aaa[A]abcd',1)
insert into test values('aaa[AB]jdshf',1)
insert into test values('aab[A]dsf',1)
insert into test values('aaa[AC]ewr',1)
insert into test values('aaa[AA]tryk',1)
insert into test values('aab[AB]reji',1)
select *,case charindex('[A]',sname) when 0 then 'no' else 'yes' end as IsHave into #a from test
select sname,sage from #a where IsHave='yes'
drop table #a

#11
bygg2007-09-10 11:03
select * from MyTable where xxx like '%[[A]]%'
含有[A]的所有信息
#12
thllilac2007-09-10 14:52
11楼
如此的查询如果就多出一条记录咧
#13
bygg2007-09-11 10:28
ls的意思是??
1