0

我在这里失明了...似乎无法在此 SQL 中找到错误:

INSERT INTO sankt_groups_order (
    parent_group_id, 
    child_group_id, 
    order
) VALUES (?,?,?)
ON DUPLICATE KEY UPDATE 
    order = ?
;

我收到此错误:

SQLSTATE[42000]: Syntax error or access violation: 
    1064 You have an error in your SQL syntax; check the manual that 
    corresponds to your MySQL server version for the right syntax to use 
    near 'order ) VALUES ('65',NULL,'3') ON DUPLICATE KEY UPDATE order = '3'' 

接下来这个 SQL 会按照我的想法做吗?如果丢失,我需要它插入整行并更新顺序(如果存在)......我有一个索引制作parent_group_idchild_group_id唯一的。

4

1 回答 1

3

order是 mysql 中的保留字,您必须对其进行转义:

    child_group_id, 
    `order`
    ^--   ^--- backticks to escape
) VALUES (?,?,?)

是的,它应该按照你的想法去做。如果存在唯一/主键违规,您只需更改该order字段。

于 2012-11-29T20:35:08.913 回答