2013-03-01 55 views
1

我有一個表tbl,其列如col1col2
col2是整數(不是一個id字段,只是int字段)。 我需要在這個表中插入4行,這些行是:插入4個相等的值,其中1是不同的

John 1 
John 2 
John 3 
Sam 4 

什麼是做在單個查詢的最佳方式?謝謝! :)

UPDATE: 而如果我有100個值呢? :)我的看法是,所有的價值觀都是一樣的,從1到n,但其中一個是不同的。

+0

但是,在col1字段中插入的名字怎麼樣? – 2013-03-01 08:58:37

回答

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 ; 
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
INSERT INTO table (col1, col2) VALUES 
('John', 1), 
('John', 2), 
('John', 3), 
('Sam', 4) 
相關問題