MySQL - 如何删除列不包含特定值的行?

时间:2016-06-22 13:56:45

标签: mysql

我试图删除特定列不包含某些字符串的所有行。 像这样:

DELETE * FROM table
WHERE Disease NOT LIKE (Malaria, HIV, E. coli O157);

我收到此错误: #1064 - 您的SQL语法出错;靠近' *来自表格疾病不喜欢(疟疾'第1行

2 个答案:

答案 0 :(得分:1)

使用

DELETE FROM TABLE_NAME WHERE Disease not in ('Malaria', 'HIV', 'E. coli 0157');

在上述声明中将表的实际名称替换为TABLE_NAME。

答案 1 :(得分:0)

如果给出的描述是疾病的确切描述,只需使用NOT IN(带适当的引号):

DELETE * FROM table
WHERE Disease NOT IN ('Malaria', 'HIV', 'E. coli O157');

但如果是子字符串,则必须使用多个LIKE:

DELETE * FROM table
WHERE
  NOT (Disease LIKE '%Malaria%'
       or Disease NOT LIKE '%HIV%'
       or Disease NOT LIKE '%E. coli O157%');