Mysql删除一条数据时以查询的结果作条件如何写?

我想用查询的结果作为删除的条件,这个SQL语句如何写呐?

DELETE FROM table_a WHERE id=EXISTS(SELECT id FROM table_a WHERE id=1 AND name='x');

这是Google中找到的方法,可是不行呐,摸索了老半天了,俺知道的方式都试过了,可是还是不行,究竟要怎么写呐,求路过的给点解下。。

阅读 8.1k
2 个回答

DELETE FROM table_a WHERE id in (SELECT id FROM table_a WHERE id=1 AND name='x');

就是子查询啊,如果想删除一条数据就是

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');

这里的子查询结果数量就没限制

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题