【发布时间】:2014-05-28 10:35:33
【问题描述】:
我有两张桌子profieltest 和parametertest。
我希望 profieltest 中的 value 列使用来自 parametertest 的参数进行更新,其中 user id 相同,而 profieltest 中的 field_id = 2 。但是,如果profieltest 中的user 和field_id 之间的组合不存在,我希望它从parametertest 插入。我尝试了一个带有唯一键的重复键语句:CREATE UNIQUE INDEX uniqfield ON profieltest (field_id, user),profieltest.id 也是一个自动增量值。我尝试了以下查询,但它给了我一个错误:
1064 - 您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 靠近't1(t1.user,t1.field_id,t1.value)值(id,t1.user = t2.user, t1.field_' 在第 1 行
INSERT INTO profieltest t1(t1.user, t1.field_id, t1.value)
VALUES( id ,t1.user = t2.user, t1.field_id=2, t1.value=t2.parameter)
SELECT t2.user, t2.parameter
FROM parametertest t2
ON DUPLICATE KEY
UPDATE SET t1.value = t2.parameter
WHERE t1.User = t2.user
AND t1.Field_id = 2
编辑:添加错误。
【问题讨论】:
-
对不起,错误是:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 't1 (t1.user, t1.field_id, t1.value) Values( , t2.user, 2, t2.parameter) ' 附近使用正确的语法
标签: mysql insert on-duplicate-key