【问题标题】:Operand should contain 1 column(s) while insert in mysql在 mysql 中插入时,操作数应包含 1 列
【发布时间】:2018-03-03 07:05:10
【问题描述】:

我有两个表,分别是用户和信息。需要从用户表中插入具有最大 id 的信息表。我尝试使用下面的单行插入查询,它工作正常。但我尝试多次插入它没有。收到错误为“#1241 - 操作数应包含 1 列”

INSERT INTO user( name, email, password )
values
    (
        ((SELECT MAX( id ) as id from info), 'test1@gmail.com', '123'),
        ((SELECT MAX( id ) as id from info), 'test1@gmail.com', '123'))

【问题讨论】:

    标签: mysql


    【解决方案1】:

    当从一个选择中插入时,我们不需要使用VALUES

    INSERT INTO user( name, email, password )
    SELECT MAX(id), 'test1@gmail.com', '123' FROM info
    UNION ALL
    SELECT MAX(id), 'test1@gmail.com', '123' FROM info;
    

    另请注意,您可能不需要将MAX(id) 查询包装为子查询。相反,只需在单个顶级查询中选择所需的常量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 2023-04-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多