Mysql 是否可以插入列表而不是字符串?
我试图通过SQL了解更多信息,并尝试插入一个与1 ID(行)链接的数字列表 现在我知道了如何在SELECT中使用List,比如Mysql 是否可以插入列表而不是字符串?,mysql,sql,Mysql,Sql,我试图通过SQL了解更多信息,并尝试插入一个与1 ID(行)链接的数字列表 现在我知道了如何在SELECT中使用List,比如 SELECT * FROM products WHERE catalog_number IN ("CAT1", "CAT2", "CAT3"); 我正在尝试做一件类似的事情,但是使用INSERT 很遗憾,像这样的事情是行不通的 INSERT INTO link_products ('main_product_id', 'linked_product_id') VALU
SELECT * FROM products WHERE catalog_number IN ("CAT1", "CAT2", "CAT3");
我正在尝试做一件类似的事情,但是使用INSERT
很遗憾,像这样的事情是行不通的
INSERT INTO link_products ('main_product_id', 'linked_product_id') VALUES (124, IN(1,2,3,4,))
基本上,我正在尝试完全在SQL中使用phpforeach
命令(在phpmyadmin
中),我甚至不确定这是否可行
结果应为(在数据库中):
id |主|产品| id |链接|产品|id
1 124 1
2 124 2
3 124 3
4 124 4
只需插入如下数据:
INSERT INTO link_products ('main_product_id', 'linked_product_id')
VALUES (124, 1)
,(124, 2)
,(124, 3)
,(124, 4)
;
我想你需要像这样的东西
INSERT INTO link_products ('main_product_id', 'linked_product_id')
SELECT 124, productId FROM products WHERE catalog_number IN ("CAT1", "CAT2", "CAT3")
您可以在一条语句中插入多行,如下所示:
insert-INTO-tbl(col1,col2…)值(1,2,,,,,,,3,4,,,,5,6,…)
PHP和sql是非常不同的-sql没有列表的概念,它对VALUES子句中的有效内容有非常严格的规则(您尝试的不是)。mysql确实有循环的概念,但只存在于存储程序(过程、函数、触发器、事件)中,而不存在于select或insert或update或delete语句中,但这种循环与php完全不同。我明白了,谢谢你的解释:)@P.SalmonOh我甚至没有想到这个值链,谢谢!有时也会发生在我身上;-)