2016-06-30 7 views
0

私が持っている列名list挿入多くの行

が設定されている orderをという名前のテーブル
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 

私はconfirmationをという名前の別のテーブルにlistを挿入したいのですがそれらのすべてが同じ列にある可能性がある方法で!しかし、それは動作しない多くの行に挿入されています!

私は

TABLE confirmation 
id |   theorder    
-------------------------------- 
1 | Cigar, Beer, Whiskey, Bacon 

は道がここ

TABLE confirmation 
id | theorder  
-------------- 
1 | Cigar, 
2 | Beer, 
3 | Whiskey, 
4 | Bacon, 

を見せてほしいな方法は、コードです:私はforeachのに働いています!

+0

[こちら](http://stackoverflow.com/questions/36781495/php-mysql-consolidate-column-where-other-column-has-duplicates)も同様の質問です。 – Wizard

答えて

2

INSERTクエリを実行するたびに、新しい行が作成されます。これをループで実行しているので、製品ごとに新しい行が作成されます。

あなたがアイテムを組み合わせたい場合は、GROUP_CONCATを使用する:あなたは、それは予約語なのでバッククォートでテーブル名orderを引用する必要が

INSERT INTO confirmation (theorder) 
SELECT GROUP_CONCAT(list SEPARATOR ', ') 
FROM `order` 

注意してください。予約語を表名と列名として使用することは避けるのが一般的です。なぜなら、引用符を忘れた場合、構文エラーが混乱するからです。 Syntax error due to using a reserved word as a table or column name in MySQL

+0

だから、私は 'foreach'の中で使う必要はありませんか? –

+0

右。このSQLクエリはすべてを行います。 – Barmar

+0

ありがとう!私はしようとすぐにそれを評価しよう! = D –

関連する問題