我有一个表,其中包含由2列组成的复合键,例如Name和ID.我有一些服务可以获取要保留的行的键(名称,id组合),其余的我需要删除.如果它只有一行,我可以使用
从table_name中删除名称不在(list_of_valid_names)
但是如何进行查询以便我可以说出类似的内容
name not in (valid_names) and id not in(valid_ids)
// this wont work since they separately dont identity a unique record or will it?
Run Code Online (Sandbox Code Playgroud)
使用mysql的特殊"多值" in语法:
delete from table_name
where (name, id) not in (select name, id from some_table where some_condition);
Run Code Online (Sandbox Code Playgroud)
如果您的列表是文字列表,您仍然可以使用此方法:
delete from table_name
where (name, id) not in (select 'john', 1 union select 'sally', 2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5411 次 |
| 最近记录: |