| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1143 人关注过本帖
标题:问了很多人都说不知道——关于查询内容带[]的问题
只看楼主 加入收藏
康师傅828
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-9-3
收藏
 问题点数:0 回复次数:12 
问了很多人都说不知道——关于查询内容带[]的问题


我在做数据库时,遇到这样的问题:
假设有表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]%"
结果查找不到。怎么办?

搜索更多相关主题的帖子: 查询 
2007-09-03 16:38
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
是不是要加个转义字符.

我的msn: myfend@
2007-09-03 17:19
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
收藏
得分:0 
SELECT * FROM MyTable WHERE XXX like quotename('A', '[')

你微笑的面對整個世界,整個世界也將會微笑的面對你。
2007-09-03 17:24
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
收藏
得分:0 
'%'+quotename('A', '[')+'%',你那種條件要用這個才行。我看成條件為[A]

你微笑的面對整個世界,整個世界也將會微笑的面對你。
2007-09-03 17:28
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
在sql server里确实是这样..
不过我在mysql里试了..没有问题说..呵呵.

我的msn: myfend@
2007-09-03 17:29
康师傅828
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-9-3
收藏
得分:0 
sky_yang_sky的方法我试验了:
SELECT * FROM MyTable WHERE XXX like '%'+quotename('A')+'%'
可以找到所有含有“[A]”的记录,但:
SELECT * FROM MyTable WHERE XXX like '%aaa'+quotename('A')+'%'
却找不到所有含有“aaa[A]”的记录
问题还是没有解决


2007-09-04 10:34
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
收藏
得分:0 
SELECT * FROM mytable WHERE XXX like '%'+quotename('A', '[')+'%'
or
select * from mytable where xxx like '%'+quotename('A')+'%'
這樣會查不出來,

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


你微笑的面對整個世界,整個世界也將會微笑的面對你。
2007-09-04 11:27
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
收藏
得分:0 

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

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


你微笑的面對整個世界,整個世界也將會微笑的面對你。
2007-09-04 11:29
康师傅828
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-9-3
收藏
得分:0 
谁有办法解决啊!!!

2007-09-04 12:32
thllilac
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2007-9-7
收藏
得分:0 

创建一个临时表撒……
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


曾经有一个女孩问我:“你长的帅不帅?”我说:“不帅。”她打了我一巴掌,生气的说:“你骗人!”
2007-09-10 10:30
快速回复:问了很多人都说不知道——关于查询内容带[]的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017130 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved