சரங்களுக்கான MySQL குழு கான்காட்

Mysql Group Concat Strings



GROUP _CONCAT செயல்பாடு என்பது ஒரு மொத்த செயல்பாடாகும், இது பல வரிசைகளிலிருந்து நெடுவரிசை மதிப்புகளை ஒரே புலத்தில் இணைக்க அனுமதிக்கிறது. தொகுப்பு குழுவில் ஒன்று அல்லது பூஜ்ய நெடுவரிசை மதிப்பு இருந்தால் அது ஒரு சரம் கொடுக்கிறது மற்றும் எதுவும் கிடைக்கவில்லை என்றால் ஒரு முழுமையான மதிப்பை அளிக்கிறது.

ஒரு குழுவிலிருந்து பல விருப்பங்களுடன் சரங்களை இணைக்க MySQL GROUP_CONCAT () செயல்பாட்டை எவ்வாறு பயன்படுத்துவது என்பதை இந்த பயிற்சி உங்களுக்குக் கற்பிக்கும்.







அடிப்படை பயன்பாடு

நாம் குறிப்பிட்டுள்ளபடி, இந்த செயல்பாடு ஒரு சரம் முடிவை ஒன்றிணைக்கப்பட்ட பூஜ்யமற்ற மதிப்புகளின் மதிப்புகள் அல்லது எதுவுமில்லையெனில் NULL ஐ வழங்குகிறது.



பொதுவான தொடரியல்:



GROUP_CONCAT ([ DISTINCT ]expr[,காலாவதி ...]
[ உத்தரவின் படி expr
[ ASC | DESC ] [,col_name ...]]
[SEPARATOR str_val])

விளக்கம்

மேலே உள்ள தொடரியல் மூலம், GROUP_CONCAT செயல்பாடு MySQL உட்பிரிவுகள் மற்றும் கட்டுப்பாடுகளை பல்வேறு விருப்பங்களைக் குறிப்பிட பயன்படுத்துகிறது:





  1. மாவட்டம்: DISTINCT உட்பிரிவு இணைவு செயல்முறைக்கு முந்தைய தொகுப்பில் உள்ள நகல் மதிப்புகளை அகற்ற உதவுகிறது. இது எவ்வாறு இயங்குகிறது என்பதைப் புரிந்து கொள்ள MySQL DISTINCT ஐ விளக்கும் எங்கள் டுடோரியலைக் கவனியுங்கள்.
  2. உத்தரவின் படி: அடுத்த உட்பிரிவு ஒரு குறிப்பிட்ட வரிசையில் மதிப்புகளை வரிசைப்படுத்த உதவும் ஆர்டர் ஆகும். வரிசையில் ஏறுதல் அல்லது இறங்குதல் இருக்கலாம். எந்த ஆர்டரும் குறிப்பிடப்படவில்லை என்றால், MySQL மதிப்புகளை ஏறுவரிசையில் வடிவமைக்கிறது.
  3. பிரிப்பான் : இந்த உட்பிரிவு, இணைப்பின் போது குழுவின் மதிப்புகளுக்கு இடையே செருகப்பட்ட சரத்தை அமைக்கிறது. இயல்பாக, MySQL மதிப்புகளை பிரிக்க கமா (,) ஐப் பயன்படுத்துகிறது.

குறிப்பு: MySQL GROUP_CONCAT () செயல்பாட்டால் உருவாக்கப்பட்ட சரம் முடிவு, group_concat_max_len மாறியில் அமைக்கப்பட்ட மதிப்பு நீளத்திற்கு மட்டுப்படுத்தப்பட்டுள்ளது. இந்த மதிப்பு கணினியில் வரையறுக்கப்பட்டுள்ளது மற்றும் இயல்புநிலை மதிப்பு 1024 ஐக் கொண்டுள்ளது. நீங்கள் இந்த மதிப்பை உலகளவில் மாற்றலாம் அல்லது உங்களுக்குத் தேவையான அமர்வில் அமைக்கலாம்.

அமை [ குளோபல் | பிரிவு ]குழு_காங்கட்_மேக்ஸ்_லென்= மதிப்பு ;

மேலும் அறிய கீழே உள்ள குறிப்பை கவனியுங்கள்:



https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_group_concat_max_len

இது எப்படி வேலை செய்கிறது: உதாரணம்

GROUP_CONCAT () செயல்பாடு எவ்வாறு செயல்படுகிறது என்பதை விளக்க ஒரு எளிய உதாரணத்தைப் பயன்படுத்த என்னை அனுமதிக்கவும். CHAR க்கான புலத்துடன் அட்டவணையை கருத்தில் கொள்ளுங்கள்:

உருவாக்கு மேசை சங்கு ( மதிப்பு சார் );

கீழே உள்ள வினவலில் காட்டப்பட்டுள்ளபடி மதிப்புகளை அட்டவணையில் செருகுவோம்:

செருகவும் INTO சங்கு ( மதிப்பு ) மதிப்புகள் ('எச்'),('மற்றும்'),('தி'),('தி'),('அல்லது');

அட்டவணையில் உள்ள மதிப்புகளில் அடிப்படை GROUP_CONCAT செயல்பாட்டைச் செய்தால், கீழே காட்டப்பட்டுள்ளபடி ஒரு சரம் முடிவைப் பெறுவோம்:

தேர்ந்தெடுக்கவும் GROUP_CONCAT ( DISTINCT மதிப்பு உத்தரவின் படி மதிப்பு ASC பிரிப்பான்'') இருந்து சங்கு ;

இதன் விளைவாக மதிப்பு:

+ ----------------------------------------------------- -------------- +
| GROUP_CONCAT ( DISTINCT மதிப்பு உத்தரவின் படி மதிப்பு ASC பிரிப்பான்'') |
+ ----------------------------------------------------- -------------- +
|இ எச் எல் ஓ|
+ ----------------------------------------------------- -------------- +
1வரிசை இல் அமை (0.01நொடி)

மேலே கொடுக்கப்பட்ட முடிவுக்கு என்ன நடந்தது என்பதைப் புரிந்துகொள்ள வேறு வழி வேண்டுமா?

ஒரு L ஐ அகற்றும் MySQL DISTINCT உட்பிரிவின் காரணமாக அனைத்து நகல் மதிப்புகளையும் அகற்றுவதன் மூலம் தொடங்குகிறோம்.

அடுத்து, (ASC) இல் வரையறுக்கப்பட்டபடி ஆர்டர் மூலம் ஏறுவரிசைக்குச் செல்கிறோம், இது சரத்தை வடிவத்தில் மாற்றுகிறது

வணக்கம்->EHLO

இறுதியாக, செட் மதிப்புகளுக்கான பிரிப்பானாக ஒரு இடைவெளியைப் பயன்படுத்தி இணைக்கும் செயல்முறையை நாங்கள் செய்கிறோம், இதன் விளைவாக சரம் E H L O ஆனது {H, E, L, L O}.

உதாரணம் பயன்பாட்டு வழக்குகள்

ஒரு உண்மையான தரவுத்தளத்தை எடுத்து GROUP_CONCAT () செயல்பாட்டை எவ்வாறு செயல்படுத்தலாம் என்பதை விளக்குவதற்கு அதைப் பயன்படுத்துவோம். இந்த எடுத்துக்காட்டில், நாங்கள் சகிலா தரவுத்தளத்தைப் பயன்படுத்துவோம், குறிப்பாக, சகிலா தரவுத்தளத்திலிருந்து முகவரி அட்டவணை.

உங்கள் எடுத்துக்காட்டுகளுக்கான தரவுத்தளத்தைப் பதிவிறக்க கீழே உள்ள ஆதாரத்தைக் கவனியுங்கள்:

https://dev.mysql.com/doc/index-other.html

சகிலா தரவுத்தளத்தின் முகவரிகள் அட்டவணையில், நீங்கள் மாவட்ட நெடுவரிசையைப் பெறுவீர்கள். கீழேயுள்ள வினவலில் காட்டப்பட்டுள்ளபடி அனைத்து தனித்துவமான மாவட்டங்களையும் ஒரு குழாயால் பிரிக்கலாம்:

தேர்ந்தெடுக்கவும் GROUP_CONCAT ( DISTINCT மாவட்டம் உத்தரவின் படி மாவட்ட பிரிப்பாளர்'|') இருந்து சகிலா முகவரி அளவு 5;

மேலே உள்ள வினவல் அனைத்து மாவட்டங்களையும் காண்பிக்கும் மற்றும் அவற்றை ஒரு குழாயால் பிரிக்கப்பட்ட ஏறுவரிசையில் வரிசைப்படுத்தும்.

குறிப்பு: GROUP_CONCAT () செயல்பாடு ஒரு மொத்த செயல்பாடு. ஆகையால், நீங்கள் தேர்ந்தெடுக்கப்பட்ட அறிக்கையில் அல்ல, செயல்பாட்டிற்குள் ஆர்டர் பை அறிக்கையை குறிப்பிட வேண்டும்.

முடிவுரை

இந்த டுடோரியலில் விவாதிக்கப்பட்ட MySQL GROUP_CONCAT () செயல்பாடு ஒரு பயனுள்ள செயல்பாடாகும், இது தனித்துவமான, வரிசைப்படுத்தப்பட்ட மற்றும் ஒழுங்கமைக்கப்பட்ட தரவை ஒரு அட்டவணையில் இருந்து நகல்கள் மற்றும் வரிசைப்படுத்தப்படாத தரவுகளை உருவாக்க அனுமதிக்கிறது.

மேலும் அறிய ஆவணங்கள் அல்லது எங்கள் மற்ற MySQL டுடோரியல்களைக் கவனியுங்கள்.