【发布时间】:2015-01-05 00:38:42
【问题描述】:
我有以下使用 REPLACE INTO 的 MySQL 语句:
INSERT INTO `tableX`.latest_status (tableX_id, name, nick)
(
SELECT records.id,
records.name,
records.nick
FROM `tableX`.records records
WHERE (`records`.`time` = 0)
)
ON DUPLICATE KEY UPDATE name=tableX.name, nick=tableX.nick
由于创建了一些错误,我意识到REPLACE INTO 不适合我的应用程序。我想要的是更新现有的行。如果该行不存在,则什么也不做。我猜 UPDATE 应该是正确的子句。我在这一点上是对的吗?
我尝试使用UPDATE 将上述 MySQL 语句转换为等效语句。这是代码;
UPDATE `tableX`.latest_status
SET tableX_id, name, nick =
(
SELECT records.id,
records.name,
records.nick
FROM `tableX`.records records
WHERE (`records`.`time` = 0)
)
很遗憾,SET tableX_id, name, nick 存在一些语法错误。等效的 UPDATE 语句应该是怎样的?
【问题讨论】:
标签: mysql sql join sql-update