如果在任何列中找到字符串,则删除行

时间:2011-01-16 05:36:40

标签: php mysql sql-delete

我的评论数据库刚刚遭到超过11,000个垃圾邮件条目的攻击。我试图想办法删除任何带有特定单词的条目。每个条目大约有12列,我想搜索所有这些列,如果有任何“关键字”,那么删除该行。类似的东西:

$sql = "DELETE FROM comments WHERE colum1, column2, column3 = has the substring xanaxs;"

请帮忙,所以我不必删除11,000行。

3 个答案:

答案 0 :(得分:4)

您可以将所有列连接在一起:

$sql = "DELETE FROM comments WHERE concat(column1,column2,column3) like "%xanaxs%";

答案 1 :(得分:1)

从严格的SQL角度来看,您必须逐个执行此操作,如:DELETE FROM comments WHERE column1 LIKE '%first_string%'

但是,由于您使用的是PHP,因此只要将每个列放在一个数组中,就可以按列和关键字循环它。

答案 2 :(得分:0)

这是:

"DELETE FROM comments WHERE CONCAT_WS(colum1,column2,column3) LIKE '%xanaxs%'"