कई, अलग-अलग पंक्तियों को संक्षिप्त करने के लिए वैकल्पिक सिंटैक्स
चेतावनी: यह पोस्ट आपको भूखा रखेगी।
दिया हुआ:
मैंने पाया कि मैं एक समूह का चयन करना चाहता हूँ , व्यक्तिगत पंक्तियों का समूह-एक समूह और एक निश्चित क्षेत्र पर।
मान लें कि आपके पास उत्पाद आईडी और उनके नाम और मूल्य की एक तालिका है:
+------------+--------------------+-------+
| 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 |
+------------------------------------------------+-------+
पुनश्च: माफी माँगता हूँ अगर आप पास में एक एन-एन नहीं है ...