MySql使用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

我尝试使用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, 
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个查询。