日期:2014-05-17  浏览次数:20477 次

新手求一SQL语句,,很简单,求助,,,壮士请留步...
变量aa=23;数据表中某一字段名为aaa,内容如23;33;43;23

意思就是如果aa=23时,查出这条记录,,,假如,aa=33也可以查出来,aa=2,,,,aa=3,,这样就查不到,,,就是aa的值必须等于;(分号隔开)前后的某一完整数字,才可以查询出这条记录


请问这条sql语句如何写啊?


新手求助,,,,,,

------解决方案--------------------
不懂你的意思啊
------解决方案--------------------
你这个为什么要这么写?

SQL code

SELECT * FROM [TB] WHERE aaa IN(2, 3);

------解决方案--------------------
用个分割字符串去查
------解决方案--------------------
SQL code
create table #temp(name varchar(20))
insert into #temp values('23;33;43;23')

declare @str int
set @str=33
select * from #temp where charindex(';'+cast(@str as varchar(20))+';',';'+name+';')>0

------解决方案--------------------
这样如果aa=2或者3不也可以查出来

探讨

我现在用的是like好象也能查出来

string aa=23;

string sql_cx="select * from tb where aaa like '%"+aa+"%'";


此处aaa是字段名称,,内容如:23,33,43,25


......



但感觉不太对,,,,


顶起.....

------解决方案--------------------
string aa=23;

string sql_cx="select * from tb where aaa like '%;"+aa+";%' or aaa like '%;" + aa + "' or aaa like '" + aa + ";%'";
------解决方案--------------------
探讨

引用:

SQL code
create table #temp(name varchar(20))
insert into #temp values('23;33;43;23')

declare @str int
set @str=33
select * from #temp where charindex(';'+cast(@str as varchar(……

------解决方案--------------------
同意 hhwolf76。
用charindex实际上就是like的另一种写法,实质一样。