代码之家  ›  专栏  ›  技术社区  ›  tsgrasser

MySQL:一列的多个插入

  •  9
  • tsgrasser  · 技术社区  · 14 年前

    我正在寻找一种方法,当我只为一列插入数据时,可以进行多行插入。

    下面是示例表:

    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | id    | tinyint(4)  | NO   | PRI | NULL    | auto_increment | 
    | name  | varchar(40) | NO   | UNI | NULL    |                | 
    +-------+-------------+------+-----+---------+----------------+
    

    我希望能够在每行的name列中插入类似('admin'、'author'、'mod'、'user'、'guest')的内容。

    INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
    

    然而,我的陈述最终是这样的:

    INSERT INTO User_Role(name) VALUES ('admin','author','mod','user','guest');
    

    我得到以下信息:

    意思是它认为我在做一行插入。

    2 回复  |  直到 13 年前
        1
  •  24
  •   Scott M.    14 年前

    你的语法有点错误。在要插入的每个数据“set”(在本例中指单个值)周围加上括号。

    INSERT INTO User_Roll(name) VALUES ('admin'), ('author'), ('mod'), ('user'), ('guest');
    
        2
  •  0
  •   Pooja Khatri    6 年前

    我建议你不要在一列中放多个值。

         INSERT INTO table_name (id, name) VALUES (1, 'name1'), (1, 'name2'), (1, 'name3'), (1, 'name4');
    
    推荐文章