将数据插入到select语句包含更多列的表中

时间:2013-09-27 13:41:17

标签: mysql sql insert-into

您好我想在pricelist表中添加一些行到products表。我试图通过测试数据来填充我的products表。是否可以在我可以向我的products表中添加随机行数的位置进行查询?主要问题是我在select语句中的行数多于insert语句中的行数。

INSERT INTO products(product_name, product_price)
SELECT name_product, price_product, IF(RAND() > 0.2,1,0) AS random
FROM pricelist
HAVING random = 1

2 个答案:

答案 0 :(得分:4)

将您的条件放在WHERE子句中。您计算的列random没有意义,因为您不要将其插入另一个表。

INSERT INTO products(product_name, product_price)
SELECT name_product, price_product
FROM pricelist
WHERE RAND() > 0.2 = 1

答案 1 :(得分:0)

您的意思是select语句中的列数多于insert语句中的列数。列号必须匹配。还有更好的方法来选择随机行...

INSERT INTO products(product_name, product_price)
SELECT name_product, price_product
FROM pricelist
ORDER BY RAND()
LIMIT 5