【问题标题】:Mysql query to Delete records after select..? [duplicate]选择后Mysql查询删除记录..? [复制]
【发布时间】:2019-04-21 13:25:37
【问题描述】:

选择记录后我想删除该记录..我尝试了以下查询 - (在删除 ,MAX(value) 但它显示后 - 您不能在 FROM 子句中指定目标表“测试”进行更新

DELETE FROM test WHERE ext_no IN 
(
SELECT   ext_no, MAX(value)
FROM     test
GROUP BY ext_no
HAVING   COUNT(*) > 2 AND 
         COUNT(*) = COUNT(CASE value WHEN 0 THEN 1 END)
);

【问题讨论】:

  • 我不明白逻辑 - 您似乎想删除所有 ext_nos,其中该 ext_no 的记录超过 2 条,并且该 ext_no 的所有记录的值为 0。这两个条件似乎不兼容,您能否将示例数据和预期结果作为文本添加到问题中。
  • @P.Salmon 是的,当然.. 你可以参考我之前的问题.. 样本数据here

标签: mysql select sql-delete


【解决方案1】:

您可以在下面尝试 - 您需要对内部选择语句使用子查询

DELETE FROM test WHERE ext_no IN 
(
select ext_no from
(
SELECT   ext_no, MAX(value)
FROM     test
GROUP BY ext_no
HAVING   COUNT(*) > 2 AND 
         COUNT(*) = COUNT(CASE value WHEN 0 THEN 1 END)
)t)

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 2017-09-16
    相关资源
    最近更新 更多