-1

我有两张桌子profieltestparametertest.

我希望使用id相同和in的参数更新invalue列。但是,如果和in之间的组合不存在,我希望它从. 我尝试了一个带有唯一键的重复键语句:,也是一个自动增量值。我尝试了以下查询,但它给了我一个错误:profieltestparametertestuserfield_id = 2profieltestuserfield_idprofieltestparametertestCREATE UNIQUE INDEX uniqfield ON profieltest (field_id, user)profieltest.id

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 't1(t1.user, t1.field_id, t1.value) VALUES(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

编辑:添加了错误。

4

1 回答 1

0

以下查询对我有用:

INSERT INTO Profieltest ( field_id,  user, value )

SELECT field_id, User,  value
FROM parametertest
    WHERE   
    (field_id = 2
    OR field_id  =  6 
    OR field_id = 7)

On duplicate KEY UPDATE 
profieltest.value=(SELECT t2.value
  FROM parametertest t2
  WHERE t2.field_id =profieltest.field_id AND  t2.user=profieltest.user )
于 2014-05-29T10:14:46.187 回答