MySql使用select进行多次插入
我尝试使用select插入多行,如下所示:MySql使用select进行多次插入,mysql,Mysql,我尝试使用select插入多行,如下所示: INSERT INTO Check( name, price, count, order_id) SELECT p.name, p.price, :count, :order FROM Product p WHERE p.id IN(:id1, :id2, :id3) 问题是,每个:id1,:id2,…都有自己的:cont1,:count2,:count3,你在找这样的东西吗 INSERT INTO Check( name, price
INSERT INTO Check(
name, price,
count, order_id)
SELECT
p.name, p.price,
:count, :order
FROM Product p
WHERE p.id
IN(:id1, :id2, :id3)
问题是,每个
:id1,:id2,…
都有自己的:cont1,:count2,:count3
,你在找这样的东西吗
INSERT INTO Check(
name, price,
count, order_id)
SELECT
p.name, p.price,
IF (id = :id1, :count1, IF (id = :id2, :count2, :count3)), :order
FROM Product p
WHERE p.id
IN(:id1, :id2, :id3)
另一个选择是。。使用这些变量id和计数创建一个单独的表,如
create table tab1(id int, count int);
insert into tab1(id,count) values(:id1, :coun1);
那你可以试试看
INSERT INTO `Check`(
name, price,
count, order_id)
SELECT
p.name, p.price, t.id, t.count
FROM Product p
JOIN tab1 t on p.id = t.id
:id是产品
id
,:count是此产品的“计数”。我想做一个篮子。但是数据太大了。所以我想优化它,并在一个查询中插入…谢谢你,但我认为这将是太多的“如果”。大概是100个“如果”@Urmat那么,将100个计数记录插入新的CountTbl
并加入Product
?我认为这是天才。而不是数百个查询,它将是大约3-4个查询。