gpt4 book ai didi

mysql - 使用两个条件更新 sql 中的列

转载 作者:行者123 更新时间:2023-11-29 15:32:10 25 4
gpt4 key购买 nike

我在 mysql 中有一个表,我想将其中名为“状态”的列中的记录更新为“重复”。我想根据两个条件将记录标记为“重复”。

  1. 记录具有重复的客户 ID。

  2. 那些没有最近修改日期的记录将被标记为重复。

attaching the image of the data for the reference

我尝试了下面的代码,但它给了我一个错误:

UPDATE test_sql_duplicate
SET status = 'Duplicate'
WHERE test_sql_duplicate.modi_date NOT IN (
SELECT *, max(modi_date)
FROM test_sql_duplicate
GROUP BY cust_id
HAVING COUNT(cust_id > 1)

最佳答案

您可以使用LEFT JOIN 反模式来标识要更新的记录。基本上,我们使用子查询来识别每个客户的最新记录,然后使用它从更新查询中排除相应的记录:

UPDATE test_sql_duplicate t
LEFT JOIN (
SELECT cust_id, MAX(modi_date) modi_date FROM test_sql_duplicate GROUP BY cust_id
) m ON m.cust_id = t.cust_id and m.modi_date = t.modi_date
SET t.status = 'Duplicate'
WHERE m.cust_id IS NULL

关于mysql - 使用两个条件更新 sql 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58633864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com