gpt4 book ai didi

MySQL 用重复标记记录

转载 作者:可可西里 更新时间:2023-11-01 08:26:38 24 4
gpt4 key购买 nike

我有一个名为 customers 的 MYSQL 表。其中一些在 orderNumber 上有重复条目。
我想在 customers.working 的所有这些记录中输入 DUPL 的值,而不仅仅是额外的副本。注意fieldA和fieldB中的值可能不重复,所以我需要标记全部。

表customers(订单号'123重复)

orderNumber     fieldA      fieldB     working
123 vdss fhghg
456 bhtf fhbb
789 goyh vhhgg
123 fhgh fhfhf

需要,更新后()

orderNumber     fieldA      fieldB     working
123 vdss fhghg DUPL
456 bhtf fhbb
789 goyh vhhgg
123 fhgh fhfhf DUPL

选择完美地工作:

SELECT `orderNumber` 
FROM `customers`
GROUP BY `orderNumber`
HAVING COUNT(`orderNumber`) > 1

但是更新没有。我有一个MYSQL不能使用select更新的错误:

UPDATE `customers` set `customers.working` ='DUPL' where `customers.orderNumber` = 
(SELECT `orderNumber`
FROM `customers`
GROUP BY `orderNumber`
HAVING COUNT(`orderNumber`) > 1);

我也试过了,但是语法错误:

UPDATE `customers` SET `customers.working` ='DUPL' 
WHERE customers.orderNumber = INNER JOIN
(SELECT `orderNumber`
FROM `customers`
GROUP BY `orderNumber`
HAVING COUNT(`orderNumber`) > 1);

格式化的正确方法是什么?

最佳答案

这是内存中的,未经测试。由于您没有说错误是什么,我正在猜测之前使用 Mysql 进行的类似操作。如果错误是说你不能从同一个表中更新和选择,你需要给选择添加一个别名。如果不是,我认为您应该使用 IN,而不是连接。

未测试但应该可以工作

UPDATE `customers`
SET `customers.working` = 'DUPL'
WHERE customers.ordernumber IN (SELECT t1.`ordernumber`
FROM (SELECT ordernumber
FROM `customers`
GROUP BY `ordernumber`
HAVING Count(`ordernumber`) > 1) AS t1);

在移动设备上,希望格式正确,括号顺序正确等 :)

关于MySQL 用重复标记记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34710216/

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