Cú pháp thay thế để nối nhiều hàng, từng hàng
CẢNH BÁO: Bài đăng này sẽ làm bạn đói.
Được:
Tôi thấy mình muốn chọn nhiều hàng riêng lẻ của một nhóm Nhóm và nối vào một lĩnh vực nhất định.
Giả sử bạn có một bảng id sản phẩm, tên và giá của chúng:
+------------+--------------------+-------+
| 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 |
+------------+--------------------+-------+
Sau đó, bạn có một số ajax ưa thích liệt kê những con chó con này như là hộp kiểm.
Người dùng hà mã đói của bạn chọn 13, 15, 16
. Hôm nay không có món tráng miệng nào cho cô ấy ...
Tìm thấy:
Một cách để tóm tắt thứ tự người dùng của bạn trong một dòng, với mysql thuần túy.
Giải pháp:
Sử dụng GROUP_CONCAT
với các IN
điều khoản :
mysql> SELECT GROUP_CONCAT(name SEPARATOR ' + ') AS order_summary FROM product WHERE product_id IN (13, 15, 16);
Đầu ra nào:
+------------------------------------------------+
| order_summary |
+------------------------------------------------+
| Double Double + Animal Style Fries + Root Beer |
+------------------------------------------------+
Giải pháp thưởng:
Nếu bạn muốn tổng giá quá, hãy ném vào 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 |
+------------------------------------------------+-------+
Tái bút: Xin lỗi nếu bạn không có In-N-Out gần đó ...