Mysql sql删除不同列的多行
我正在研究一种删除单个SQL数据库中多行的方法,目标是两列。ColumnA将始终是相同的值,ColumnB将是不同的值 我正在尝试找出类似以下内容的正确语法:Mysql sql删除不同列的多行,mysql,sql,Mysql,Sql,我正在研究一种删除单个SQL数据库中多行的方法,目标是两列。ColumnA将始终是相同的值,ColumnB将是不同的值 我正在尝试找出类似以下内容的正确语法: DELETE FROM tableName WHERE ( ColumnA = 123 AND ColumnB = 1, ColumnA = 123 AND ColumnB = 2, ColumnA = 123 AND ColumnB = 3, ColumnA = 123 AND ColumnB = 4,
DELETE FROM tableName WHERE (
ColumnA = 123 AND ColumnB = 1,
ColumnA = 123 AND ColumnB = 2,
ColumnA = 123 AND ColumnB = 3,
ColumnA = 123 AND ColumnB = 4,
ColumnA = 123 AND ColumnB = 8
);
上述逻辑的正确SQL语法是什么?将
、
替换为或:
where (ColumnA = 123 and ColumnB = 1) or
(ColumnA = 123 and ColumnB = 2) or
. . .
(ColumnA = 123 and ColumnB = 8);
这也可以简化为:
where ColumnA = 123 and
ColumnB in (1, 2, 3, 4, 8);
用或替换,
:
where (ColumnA = 123 and ColumnB = 1) or
(ColumnA = 123 and ColumnB = 2) or
. . .
(ColumnA = 123 and ColumnB = 8);
这也可以简化为:
where ColumnA = 123 and
ColumnB in (1, 2, 3, 4, 8);
最简单的解决方案(如GMB所建议的)是用或替换逗号。但是,MySQL也支持元组,因此您可以使用:
WHERE (ColumnA, ColumnB) IN ( (123, 1), (123, 2), (123, 3), (123, 4), (123, 8) )
或者,如果列a
的值确实相同,则:
WHERE ColumnA = 123 AND
ColumnB IN (1, 2, 3, 4, 8)
最简单的解决方案(如GMB所建议的)是用或替换逗号。但是,MySQL也支持元组,因此您可以使用:
WHERE (ColumnA, ColumnB) IN ( (123, 1), (123, 2), (123, 3), (123, 4), (123, 8) )
或者,如果列a
的值确实相同,则:
WHERE ColumnA = 123 AND
ColumnB IN (1, 2, 3, 4, 8)
这可以做到:
DELETE FROM tableName
WHERE ColumnA = 123 AND ColumnB IN (1, 2, 3, 4, 8)
这可以做到:
DELETE FROM tableName
WHERE ColumnA = 123 AND ColumnB IN (1, 2, 3, 4, 8)
只需将逗号替换为或
s。哦,是的,你甚至不需要添加括号,因为和
s在或
s之前已经被解释过了:试试这个,从tableName中删除(ColumnA=123和ColumnB in(1,2,3,4,8);只需将逗号替换为或
s。哦,是的,您甚至可能不需要添加括号,因为和
s在或
s之前已经被解释过了:试试这个,从tableName中删除(ColumnA=123和ColumnB in(1,2,3,4,8);