DELETE FROM MYTABLE WHERE ID = 1 and NAME ='xyz';
DELETE FROM MYTABLE WHERE ID = 2 and NAME ='abc';
DELETE FROM MYTABLE WHERE ID = 3 and NAME ='abc';
我有多个上面提到的删除声明。如何在较少的语句中删除它们。我必须写100个删除语句吗?
答案 0 :(得分:2)
你可以这样做:
cmd='find ~ | head -3 | while read f; do out=$(dirname ${f}); echo ${out}; done'
echo $cmd
答案 1 :(得分:0)
您可以使用IN
:
DELETE FROM MYTABLE
WHERE (ID, NAME) IN (SELECT 1 AS ID, 'xyz' AS NAME FROM dual UNION ALL
SELECT 2 AS ID, 'abc' AS NAME FROM dual UNION ALL
SELECT 3 AS ID, 'abc' AS NAME FROM dual);
当然,在子查询中,您可以使用任何select(例如来自全局临时表)。
答案 2 :(得分:-1)
DELETE FROM MYTABLE
WHERE ID IN (1, 2, 3) AND NAME IN ('XYZ', 'ABC');
如果您的ID字段是唯一的,请使用:
DELETE FROM MYTABLE WHERE ID IN (1, 2, 3);