ไวยากรณ์สำรองเพื่อเชื่อมต่อหลายแถวแต่ละแถวเข้าด้วยกัน
คำเตือน: โพสต์นี้จะทำให้คุณหิว
ได้รับ:
ฉันพบว่าตัวเองต้องการเลือกหลายแถวแต่ละแถว -แทนกลุ่ม - และเรียงต่อกันในบางฟิลด์
สมมติว่าคุณมีตารางรหัสผลิตภัณฑ์พร้อมชื่อและราคา:
+------------+--------------------+-------+
| 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 |
+------------+--------------------+-------+
จากนั้นคุณก็มีอาแจ็กซ์แฟนซีที่ใส่ลูกสุนัขเหล่านี้เป็นกล่องกา
13, 15, 16
ผู้ใช้ที่เลือกหิวฮิปโปของคุณ ไม่มีของหวานสำหรับเธอในวันนี้ ...
หา:
วิธีสรุปการสั่งซื้อของผู้ใช้ในหนึ่งบรรทัดด้วย mysql บริสุทธิ์
สารละลาย:
ใช้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ใกล้เคียง ...