Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में CONCAT में GROUP_CONCAT का उपयोग कैसे करें

select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
  select 
    id, 
    concat(`Name`, ':', group_concat(`Value` separator ',')) as `Name`
  from mytbl
  group by 
    id, 
    `Name`
) tbl
group by id;

आप इसे यहां कार्यान्वित होते हुए देख सकते हैं:एसक्यूएल फिडल डेमो . ठीक वही जो आपको चाहिए।

अपडेट करें दो चरणों में बंटवारा। सबसे पहले हमें एक अद्वितीय [नाम, आईडी] के खिलाफ सभी मान (अल्पविराम से अलग) वाली एक तालिका मिलती है। फिर प्राप्त तालिका से हमें प्रत्येक अद्वितीय आईडी के विरुद्ध एक ही मान के रूप में सभी नाम और मान मिलते हैं इसे यहां देखें एसक्यूएल फिडल डेमो (नीचे स्क्रॉल करें क्योंकि इसमें दो परिणाम सेट हैं)

संपादित करें प्रश्न पढ़ने में गलती हुई थी, मैंने केवल id के आधार पर ग्रुप किया था। लेकिन दो group_contacts की आवश्यकता है यदि (मानों को नाम और आईडी द्वारा समूहीकृत किया जाना है और फिर आईडी द्वारा सभी पर)। पिछला उत्तर था

select 
id,group_concat(concat(`name`,':',`value`) separator ',')
as Result from mytbl group by id

आप इसे यहां कार्यान्वित होते हुए देख सकते हैं:SQL Fiddle Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वाइल्डकार्ड का उपयोग करके XXX से प्रारंभ होने वाले सभी स्तंभों का चयन करना?

  2. MySQL कैसे सीमा में लापता तिथियों को भरने के लिए?

  3. मैं एक बड़ी (14 जीबी) MySQL डंप फ़ाइल को एक नए MySQL डेटाबेस में कैसे आयात कर सकता हूं?

  4. MySQL क्वेरी स्ट्रिंग में शामिल हैं

  5. सप्ताह () उदाहरण – MySQL