MySQL - UPDATE中括号内的列表

时间:2013-06-16 05:32:10

标签: mysql

MySQL UPDATE语句不适用于括号列表。例如,以下是语法错误:

UPDATE zork SET (A,B) = ('foo','bar') WHERE C = 'baz';

但是,INSERTREPLACE语句允许括号列表。有没有办法将UPDATE语句中的列名和值列表组合在一起?

2 个答案:

答案 0 :(得分:1)

行构造函数语法在某些地方有效,而在其他地方无效。

  • 工作=<><=>=,{{1 }}:

    <>

    WHERE (a,b) = ('foo','bar')
    

    WHERE (a,b) >= ('foo','bar')
    
  • 无效WHERE (a,b,c) <> ('foo','bar',7) 和其他结构一样,如BETWEEN ... AND

    UPDATE ... SET

    WHERE (a,b) BETWEEN ('foo','bar') AND ('foo','bar')
    

为什么,我认为只有MySQL开发人员可以回答。也许您可以提交错误/功能建议。

对于您的更新,我认为除了以下之外还有其他选择:

UPDATE tableX SET (a,b) = ('foo','bar')

答案 1 :(得分:0)

如果您设置了主键并且不需要更新该键,则可以使用replace命令:

REPLACE INTO zork VALUES ('foo','bar','baz')

如果你真的需要使用UPDATE语法,那你就不走运了。