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

一个后台查询语句,,,,新学,,,求大侠帮助,,,急,,,
表tab中有一个字段allcate内容如:aa,1;aa,2;aa,3;bb,4;bb,5;cc,6;dd,7;dd,8;....

这时,有一变量,cateid="aa";(注,这里的值可以变化,根据用户提交的分类ID来定,这里暂用aa举例)


要求,查出表tab中,字段allcate中的内容每一组(每个分号为一组)的逗号前面的值只要有aa(只要逗号前面的值与用户提交的相同,不管有多少组相同,只要有一组存在,,每组逗号后面的值不匹配)那么这条记录就显示,,



后台中这句查询语句怎么写呢?

cateid="前面页获得的值";

string sql_cate="select * from tab where allcate like '%"+cateid+"%'";

这样写好象不对,,,,,


新手求大侠帮助,,,,

急,,,

------解决方案--------------------
用charindex或者patiindex
和这个类似
参考http://topic.csdn.net/u/20120503/14/f9d7160d-521a-469f-bda1-f17f5a052732.html
------解决方案--------------------
string sql_cate="select * from tab where allcate like '%"+cateid+"%'";
是可以的


------解决方案--------------------
看不出有啥问题
------解决方案--------------------
SQL code
declare @cateid int
set @cateid=2
select * from #temp where charindex(';'+cast(@cateid as varchar(10))+',',';'+allcate+',')>0

------解决方案--------------------
用charindex吧
------解决方案--------------------
探讨
引用:

SQL code
declare @cateid int
set @cateid=2
select * from #temp where charindex(';'+cast(@cateid as varchar(10))+',',';'+allcate+',')>0


好象不对啊。。

第一个,是我;第二个,是你;第三个,是他;第二个,是猫;第二个……

------解决方案--------------------
string sql_cate="select * from tab where allcate like '%"+cateid+",%'";


------解决方案--------------------
探讨
引用:

string sql_cate="select * from tab where allcate like '%"+cateid+",%'";



有值,字段也有相应的内容,,,,但查不出来,,,,

急,,,,顶,,,,