我有一個表tbl
,其列如col1
和col2
。
col2
是整數(不是一個id字段,只是int字段)。 我需要在這個表中插入4行,這些行是:插入4個相等的值,其中1是不同的
John 1
John 2
John 3
Sam 4
什麼是做在單個查詢的最佳方式?謝謝! :)
UPDATE: 而如果我有100個值呢? :)我的看法是,所有的價值觀都是一樣的,從1到n,但其中一個是不同的。
我有一個表tbl
,其列如col1
和col2
。
col2
是整數(不是一個id字段,只是int字段)。 我需要在這個表中插入4行,這些行是:插入4個相等的值,其中1是不同的
John 1
John 2
John 3
Sam 4
什麼是做在單個查詢的最佳方式?謝謝! :)
UPDATE: 而如果我有100個值呢? :)我的看法是,所有的價值觀都是一樣的,從1到n,但其中一個是不同的。
如果你需要插入的記錄(如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 ;
你可以只使用一個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 ;
INSERT INTO table (col1, col2) VALUES
('John', 1),
('John', 2),
('John', 3),
('Sam', 4)
但是,在col1字段中插入的名字怎麼樣? – 2013-03-01 08:58:37