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);
我在 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);