sql = "delete from TblDetail where '%" + strID + "%' like '%'+CSubject+';%'"; 
--这么写反正也用不到索引,还不如这么写简洁:
sql = "delete from TblDetail where instr('" + strID + "',CSubject)>0"; 

解决方案 »

  1.   

    楼上的,不行吧
    sql = "delete from TblDetail where instr('" + strID + "',CSubject)>0"; 
    ---id      CSubject
    1       1234
    2       2345
    3       6789假如传过来的strID="1;123;234;6789"
    也会可以把上面数据全部删除 ,但是第一、二条记录不应该被删除,数字要完全匹配才能被删。
      

  2.   

    sql = "delete from TblDetail where '%" + strID + "%' like '%'+CSubject+';%'"; 
    这个SQL不正确吧???假如stdID是123那么上面语句就是
    delete from TblDetail where '%123%' like '%'+CSubject+';%'
    字符串可以加??? 
    即使把+换成||,逻辑上也有问题。
      

  3.   

    楼上说的对,上面写法都不完全对,遇到这种情况可以这么处理的:delete from TblDetail where instr(';'|| strID || ';',';' || CSubject || ';') > 0