我想用查询的结果作为删除的条件,这个SQL语句如何写呐?
DELETE FROM table_a WHERE id=EXISTS(SELECT id FROM table_a WHERE id=1 AND name='x');
这是Google中找到的方法,可是不行呐,摸索了老半天了,俺知道的方式都试过了,可是还是不行,究竟要怎么写呐,求路过的给点解下。。
就是子查询啊,如果想删除一条数据就是
DELETE FROM table_a WHERE id = (SELECT id FROM table_a WHERE id=1 AND name='x' LIMIT 1);
这里的子查询结果必须保证只有一条记录。
删除多行就是这样
DELETE FROM table_a WHERE id IN (SELECT id FROM table_a WHERE id=1 AND name='x');
这里的子查询结果数量就没限制
DELETE FROM table_a WHERE id in (SELECT id FROM table_a WHERE id=1 AND name='x');