複数の個別の行を連結する代替構文
警告:この投稿はお腹がすくなります。
与えられた:
グループではなく、複数の個別の行を選択し、特定のフィールドを連結したいと思っていました。
製品IDとその名前および価格の表があるとします。
+------------+--------------------+-------+
| product_id | name | price |
+------------+--------------------+-------+
| 13 | Double Double | 5 |
| 14 | Neapolitan Shake | 2 |
| 15 | Animal Style Fries | 3 |
| 16 | Root Beer | 2 |
| 17 | Lame T-Shirt | 15 |
+------------+--------------------+-------+
次に、これらの子犬をチェックボックスとして一覧表示する派手なajaxがあります。
空腹のカバのユーザーがを選択し13, 15, 16
ます。今日は彼女にデザートはありません...
検索:
純粋なmysqlを使用して、ユーザーの注文を1行に要約する方法。
解決:
使用GROUP_CONCAT
して句:IN
mysql> SELECT GROUP_CONCAT(name SEPARATOR ' + ') AS order_summary FROM product WHERE product_id IN (13, 15, 16);
どの出力:
+------------------------------------------------+
| order_summary |
+------------------------------------------------+
| Double Double + Animal Style Fries + Root Beer |
+------------------------------------------------+
ボーナスソリューション:
あなたも合計価格が必要な場合は、トスSUM()
:
mysql> SELECT GROUP_CONCAT(name SEPARATOR ' + ') AS order_summary, SUM(price) AS total FROM product WHERE product_id IN (13, 15, 16);
+------------------------------------------------+-------+
| order_summary | total |
+------------------------------------------------+-------+
| Double Double + Animal Style Fries + Root Beer | 10 |
+------------------------------------------------+-------+
PS:近くにIn-N-Outがない場合は謝罪...