弄了3天的一个语句没搞出来,请教下各位:我的MYSQL数据库有个表叫tb_CollectionData里面有两个字段:data1 
data1是存放标题的
我现在要实现如下的SQL语句:
data1表中任意包含“张三”或者“李四"或者“王麻子" 不删除
 
“我是张三”   不删除
“我是李四”   不删除
“我是王麻子” 不删除其余的标题则删除。

解决方案 »

  1.   

    DELETE FROM tb_CollectionData WHERE data1 NOT IN ('张三', '李四', '王麻子');试试这条语句。希望能帮到你。呵呵,楼主真是的,都五一了还不休息啊。真是劳模啊!
      

  2.   

    樓上的,你那個語句不行了
    要是標題不是'張三', 而是'我是張三',那就被刪了LZ可以用這條DELETE FROM tb_CollectionData WHERE instr(data1 ,'张三') = 0 and instr(data1 , '李四') = 0 and  instr(data1 , '王麻子')=0;
      

  3.   

    delete from tb_CollectionData 
    where data1 not like "%张三%" and data1 not like "%李四%" and data1 not like "%王麻子%"
      

  4.   

    ]]应该不是 and 是,or更正:delete from tb_CollectionData 
    where data1 not like "%张三%" or data1 not like "%李四%" or data1 not like "%王麻子%"
      

  5.   


    更正的更正:
    3樓的沒錯
    因為如果是 "我是李四"
    那data1 not like "%张三%" 將返回 true, 也就是說會被刪掉所以應該是
    delete from tb_CollectionData
    where data1 not like "%张三%" and data1 not like "%李四%" and data1 not like "%王麻子%"
      

  6.   

    delete from tb_CollectionData
    where data1 not like "%张三%" and data1 not like "%李四%" and data1 not like "%王麻子%"正解