我想用查询的结果作为删除的条件,这个SQL语句如何写呐?
DELETE FROM table_a WHERE id=EXISTS(SELECT id FROM table_a WHERE id=1 AND name='x');
这是Google中找到的方法,可是不行呐,摸索了老半天了,俺知道的方式都试过了,可是还是不行,究竟要怎么写呐,求路过的给点解下。。
我想用查询的结果作为删除的条件,这个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');
这里的子查询结果数量就没限制
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
DELETE FROM table_a WHERE id in (SELECT id FROM table_a WHERE id=1 AND name='x');