mysql update query 只需要在重复存在时执行一次

mysql update query needs to execute only one time when duplicate exist

我在 table 中有两条具有相同值的记录。我需要在 一行中 插入 一个 ID。下面是table.

中的记录

我需要在 第一个 记录中插入 PI123。为此,我想 运行 更新查询。可以请任何人帮忙吗?

我已经尝试过这个查询

UPDATE mowbly_pace_receipt_services 
SET id = 'PI123' 
WHERE createdat = (SELECT createdat 
                   FROM mowbly_pace_receipt_services 
                   WHERE createdat='1628500751153' 
                   LIMIT 1) 
    and code='SPI';

可以直接在UPDATE语句中使用LIMIT 1

UPDATE mowbly_pace_receipt_services 
SET id = 'PI123' 
WHERE createdat = '1628500751153' AND code='SPI'
LIMIT 1;

但这并不能保证将更新 2 行中的哪一行。
你应该在 table 中有一个 PRIMARY KEY 列,就像一个 AUTO_INCREMENT id 可以用来设置行的顺序。

参见demo

你试过吗?我不确定它是否有效,但你可以试试。

UPDATE mowbly_pace_receipt_services SET id = 'PI123' WHERE createdat = (SELECT createdat FROM mowbly_pace_receipt_services WHERE createdat='1628500751153' LIMIT 1) and code= (SELECT 代码来自 mowbly_pace_receipt_services WHERE 代码 ='SPI' LIMIT 1);