日期:2014-05-18  浏览次数:20520 次

做报表时,碰到一个问题
有一数据库表,
然后有一个字段是varchar  
值是   3,6,8
怎么样
用sql语句查询   编号6   是否在这个字段中的记录,
请问怎么做才行,用   in   ()


------解决方案--------------------
string strID = "6 ";
string strSql = "select * from t_name where 字段名 like " + strID + ",% or 字段名 like " + "%, " + strID + ",% or 字段名 like '%, ' " + strID + " or 字段名 = " + strID;

我不觉得这是一个好主意 呵呵。
------解决方案--------------------
Oracle数据库有个函数 INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
select ... where instr( '3,6,8 ', '6 ',1,1)> 0
------解决方案--------------------
select * from table where charindex(@P,Cols) > 0