我有一个名为video.videoHeight
的表,其中设置了列名order
list
我想将TABLE list
id | list | price | date
---------------------------------------
1 | Cigar | 5.00 | 2016-06-30
2 | Beer | 6.00 | 2016-06-30
3 | Whiskey | 20.00 | 2016-06-30
4 | Bacon | 10.00 | 2016-06-30
插入到另一个名为list
的表中,以便所有这些表都可以在同一行中!但是,它不起作用,并插入许多行!
我想要的方式
confirmation
方式显示
TABLE confirmation
id | theorder
--------------------------------
1 | Cigar, Beer, Whiskey, Bacon
以下是代码:我正在使用foreach!
TABLE confirmation
id | theorder
--------------
1 | Cigar,
2 | Beer,
3 | Whiskey,
4 | Bacon,
答案 0 :(得分:2)
每次执行INSERT
查询时,都会创建一个新行。由于您是在循环中执行此操作,因此会为每个产品创建一个新行。
如果要合并项目,请使用GROUP_CONCAT
:
INSERT INTO confirmation (theorder)
SELECT GROUP_CONCAT(list SEPARATOR ', ')
FROM `order`
请注意,您需要使用反引号引用表名order
,因为它是一个保留字。通常最好避免使用保留字作为表名和列名,因为如果你忘记引用它,你会得到一个令人困惑的语法错误。见Syntax error due to using a reserved word as a table or column name in MySQL