【发布时间】:2019-12-31 23:56:57
【问题描述】:
我有 100 行需要删除,基于 PersonId 和 CarModel。一些PersonId 可能有多个CarModels,所以如果我使用
DELETE FROM myTable
WHERE PersonId IN (
101,
102,
103,
104
)
AND CarModel IN (
'Honda Accord',
'Ford Explorer',
'Other car model',
'Last car model'
)
那将有误报删除 101,“福特探险者”,这是我不想要的。只有 101,“本田雅阁”和 102,“福特探险者”
我可以把它格式化为
DELETE FROM myTable
WHERE
(PersonId = 101 AND CarModel = 'Honda) Accord'
OR (PersonId = 102 AND CarModel = 'Ford Explorer')
OR (PersonId = 103 AND CarModel = 'model 1')
OR ( PersonId = 104 AND CarModel = 'model 2')
但这有点难看。有更简洁的语法吗?我找不到大列表的多列 where 子句
【问题讨论】:
-
这能回答你的问题吗? SQL multiple columns in IN clause
标签: sql