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

查询语句求救
有个产品表,分类是多选的,分类字段the_m_profession值为8,78   或   88,78     我要匹配这些记录中the_m_profession包含8的记录,应该用怎样的语句。
我的语句如下:
charindex( '8 ',the_m_profession)>   0  
但是这样就会把那个88,78     的记录也包含进来。不知大家有什么好建议。

------解决方案--------------------
select * from T1 where the_m_profession like '8,% ' or the_m_profession like ',8% '
这样查出来的就是符合要求的
另外提个建议,这个表的设计有问题,不符合数据库设计的第三范式吧(没有符合“数据表的字段不可再分”)
------解决方案--------------------
那你就把数转化成字符串,换一种表示方法,比如8用008来表示,88用088来表示
这样你的条件变成charindex( '008 ',the_m_profession)>
这样查就不会出错了。
------解决方案--------------------
汗。。。
我犯了一個天大的錯誤
你用這個試試
charindex( ',8, ', ', '+the_m_profession+ ', ')
------解决方案--------------------
select * from [table] where ', ' + the_m_profession + ', ' like '%,8,% '