插入4个相等的值,1表示不同

时间:2013-03-01 08:46:26

标签: mysql sql

我有一个表tbl,其中包含col1col2等列 col2是整数(不是id字段,只是int字段)。 我需要在这个表中插入4行,这些行是:

John 1
John 2
John 3
Sam  4

在单个查询中执行此操作的最佳方法是什么?谢谢! :)

更新: 如果我有100个值怎么办? :)我的意思是所有的值都是相同的,从1到n,但其中一个是不同的。

3 个答案:

答案 0 :(得分:2)

您只能使用一个INSERT语句来执行此操作:

  

使用VALUES语法的INSERT语句可以插入多行。至   执行此操作,包括多个列值列表,每个列值都包含在其中   括号,用逗号分隔。

像这样:

INSERT INTO tablename(col1, col2)
VALUES ('John', 1),
       ('John', 2),
       ('John', 3),
       ('Sam',  4);

INSERT INTO Tablename(col1, col2)
SELECT 'John' AS col1, 1 AS col2
UNION ALL
SELECT 'John'        , 2
UNION ALL 
SELECT 'John'        , 3 
UNION ALL
SELECT 'Sam'         , 4 ;

答案 1 :(得分:1)

INSERT INTO table (col1, col2) VALUES
('John', 1),
('John', 2),
('John', 3),
('Sam', 4)

答案 2 :(得分:1)

如果需要插入大量记录(例如100),则可以在存储过程中使用循环。这是一个基本的例子:

DELIMITER $$
DROP PROCEDURE IF EXISTS LoopProc$$
CREATE PROCEDURE LoopProc()
  BEGIN
    DECLARE x  INT;
    SET x = 1;
    WHILE x  <= 100 DO
      INSERT INTO table (col1, col2) VALUES ('John', x);
      SET  x = x + 1;
    END WHILE;
    SET  x = x + 1;
    INSERT INTO table (col1, col2) VALUES ('Sam', x);
  END$$
DELIMITER ;