mysql 程序 : Result consisted of more than one row with select statement

标签 mysql sql procedure

我正在为我的常规重复工作创建一个程序。

其中,有一个步骤可以将一个表中的多行插入到临时表中。

CREATE TABLE `tmpUserList` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `user_type` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
      `first_name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
      `last_name` varchar(45) COLLATE utf8_unicode_ci NOT NULL
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

    ..... some more queries.


        INSERT INTO  tmpUserList ( 
                SELECT  id, user_type,first_name,last_name,  from user  where  id in  (usersId) 
        );


    SELECT * FROM tmpUserList; // return the result

但它给我错误:Result consisted of more than one row

最佳答案

正确的 INSERT SELECT 语法:

INSERT INTO tmpUserList(id, user_type,first_name,last_name)
SELECT id, user_type,first_name,last_name 
FROM user  
WHERE id IN (usersId);

如果 usersId 包含多个值,您可以使用:

WHERE FIND_IN_SET(id, usersId);  -- table scan

相关:MySQL Prepared statements with a variable size variable list

关于mysql 程序 : Result consisted of more than one row with select statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53921890/

相关文章:

sql - 如何从 Oracle SQL 中的字符串中删除前导 0?

mysql - 无法创建存储过程 : Syntax error

带参数语法的 MySQL 过程

mysql drop table 如果存在于程序内部

php - 查询数据库时收到错误

c# - Android 应用程序和 MySql 连接无法连接。打开

php - 选择起始数字,后跟 mysql 中的第一个单词

sql - 在存储过程中使用同义词

c# - 如果列存在,则从数据库中选择列

mysql - INSERT INTO COUNT(*) 在 MYSQL 中自动更新时间戳