GROUP _CONCAT ఫంక్షన్ అనేది గ్రూప్ బై గ్రూప్ ఫంక్షన్, ఇది నిలువు వరుస విలువలను బహుళ వరుసల నుండి ఒకే ఫీల్డ్లోకి అనుసంధానించడానికి మిమ్మల్ని అనుమతిస్తుంది. సెట్ సమూహం ఒకటి లేదా శూన్య కాలమ్ విలువను కలిగి ఉంటే మరియు ఏదీ కనుగొనబడకపోతే పూర్తి విలువను అందించినట్లయితే ఇది స్ట్రింగ్ను అందిస్తుంది.
ఈ ట్యుటోరియల్ అనేక ఎంపికలతో ఒక సమూహం నుండి తీగలను కలపడానికి MySQL GROUP_CONCAT () ఫంక్షన్ను ఎలా ఉపయోగించాలో నేర్పుతుంది.
ప్రాథమిక వినియోగం
మేము చెప్పినట్లుగా, ఈ ఫంక్షన్ ఒక స్ట్రింగ్ ఫలితాన్ని సమన్వయం కాని శూన్య విలువలు లేదా ఏదీ లేనట్లయితే NULL విలువలతో అందిస్తుంది.
సాధారణ వాక్యనిర్మాణం:
GROUP_CONCAT ([ విభిన్న ]expr[,గడువు ...]
[ ద్వారా ఆర్డర్ expr
[ ASC | DESC ] [,col_name ...]]
[SEPARATOR str_val])
వివరణ
పై వాక్యనిర్మాణం నుండి, వివిధ ఎంపికలను పేర్కొనడానికి GROUP_CONCAT ఫంక్షన్ MySQL క్లాజులు మరియు అడ్డంకులను ఉపయోగిస్తుందని మీరు చూడవచ్చు:
- విభిన్న: డిస్టింక్ట్ క్లాజ్ కాన్సెంటేషన్ ప్రక్రియకు ముందు సెట్ గ్రూప్లోని డూప్లికేట్ విలువలను తొలగించడంలో సహాయపడుతుంది. ఇది ఎలా పనిచేస్తుందో అర్థం చేసుకోవడానికి MySQL DISTINCT ని వివరించే మా ట్యుటోరియల్ని పరిశీలించండి.
- ఆర్డర్: తదుపరి నిబంధన ఆర్డర్ బై ద్వారా నిర్దేశిత క్రమంలో విలువలను క్రమబద్ధీకరించడంలో సహాయపడుతుంది. ఆర్డర్ ఆరోహణ లేదా అవరోహణ కావచ్చు. ఆర్డర్ పేర్కొనబడకపోతే, MySQL విలువలను ఆరోహణ క్రమంలో ఫార్మాట్ చేస్తుంది.
- సెపరేటర్ : ఈ నిబంధన సమ్మేళనం ప్రక్రియలో సమూహం యొక్క విలువల మధ్య చేర్చబడిన స్ట్రింగ్ అక్షరాలను సెట్ చేస్తుంది. డిఫాల్ట్గా, MySQL విలువలను వేరు చేయడానికి కామా (,) ని ఉపయోగిస్తుంది.
గమనిక: MySQL GROUP_CONCAT () ఫంక్షన్ ద్వారా ఉత్పత్తి చేయబడిన స్ట్రింగ్ ఫలితం, group_concat_max_len వేరియబుల్లో సెట్ చేసిన విలువ పొడవుకు పరిమితం చేయబడింది. ఈ విలువ సిస్టమ్లో నిర్వచించబడింది మరియు డిఫాల్ట్ విలువ 1024 ఉంది. మీరు ఈ విలువను ప్రపంచవ్యాప్తంగా మార్చవచ్చు లేదా మీకు అవసరమైన సెషన్లో సెట్ చేయవచ్చు.
సెట్ [ ప్రపంచ | సెషన్ ]group_concat_max_len= విలువ ;మరింత తెలుసుకోవడానికి దిగువ సూచనను పరిగణించండి:
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_group_concat_max_len
ఇది ఎలా పనిచేస్తుంది: ఉదాహరణ
GROUP_CONCAT () ఫంక్షన్ ఎలా పనిచేస్తుందో వివరించడానికి ఒక సాధారణ ఉదాహరణను ఉపయోగించడానికి నన్ను అనుమతించండి. CHAR కోసం ఫీల్డ్తో ఉన్న పట్టికను ఇలా పరిగణించండి:
సృష్టించు పట్టిక కాంకట్ ( విలువ CHAR );దిగువ ప్రశ్నలో చూపిన విధంగా పట్టికలో విలువలను చొప్పించండి:
ఇన్సర్ట్ INTO కాంకట్ ( విలువ ) విలువలు ('H'),('మరియు'),('ది'),('ది'),('లేదా');మేము పట్టికలోని విలువలపై ప్రాథమిక GROUP_CONCAT ఆపరేషన్ చేస్తే, దిగువ చూపిన విధంగా మేము స్ట్రింగ్ ఫలితాన్ని పొందుతాము:
ఎంచుకోండి GROUP_CONCAT ( విభిన్న విలువ ద్వారా ఆర్డర్ విలువ ASC సెపరేటర్'') నుండి కాంకట్ ;ఫలిత విలువ:
+ ----------------------------------------------------- -------------- +| GROUP_CONCAT ( విభిన్న విలువ ద్వారా ఆర్డర్ విలువ ASC సెపరేటర్'') |
+ ----------------------------------------------------- -------------- +
|ఇ హెచ్ ఎల్ ఓ|
+ ----------------------------------------------------- -------------- +
1వరుస లో సెట్ (0.01సెకను)
పైన ఇచ్చిన ఫలితం ఏమి జరిగిందో అర్థం చేసుకోవడానికి మీకు మరొక మార్గం కావాలా?
మేము ఒక L ని తీసివేసే MySQL DISTINCT నిబంధన కారణంగా అన్ని నకిలీ విలువలను తీసివేయడం ద్వారా ప్రారంభిస్తాము.
తరువాత, మేము (ASC) లో నిర్వచించిన విధంగా ఆర్డర్ ద్వారా ఆర్డర్కు వెళ్తాము, ఇది స్ట్రింగ్ను రూపంలో మారుస్తుంది
హలో->EHLOచివరగా, సెట్ వాల్యూస్ల కోసం సెపరేటర్గా ఒక స్పేస్ని ఉపయోగించి మేము కాన్సెంటేషన్ ప్రక్రియను నిర్వహిస్తాము, ఫలితంగా {H, E, L, L O} నుండి స్ట్రింగ్ E H L O వస్తుంది.
ఉదాహరణ వినియోగ కేసులు
మేము నిజమైన డేటాబేస్ తీసుకొని GROUP_CONCAT () ఫంక్షన్ను ఎలా అమలు చేయవచ్చో వివరించడానికి దాన్ని ఉపయోగిద్దాం. ఈ ఉదాహరణలో, మేము సకిలా డేటాబేస్ మరియు ప్రత్యేకంగా, సకీలా డేటాబేస్ నుండి చిరునామాల పట్టికను ఉపయోగిస్తాము.
మీ ఉదాహరణల కోసం డేటాబేస్ డౌన్లోడ్ చేయడానికి దిగువ వనరును పరిగణించండి:
https://dev.mysql.com/doc/index-other.html
సకిలా డేటాబేస్ యొక్క చిరునామా పట్టికలో, మీరు జిల్లా కాలమ్ పొందుతారు. దిగువ ప్రశ్నలో చూపిన విధంగా మేము అన్ని ప్రత్యేక జిల్లాలను పైప్ ద్వారా వేరు చేయవచ్చు:
ఎంచుకోండి GROUP_CONCAT ( విభిన్న జిల్లా ద్వారా ఆర్డర్ జిల్లా SEPARATOR'|') నుండి సకిల. చిరునామా పరిమితి 5;పై ప్రశ్న అన్ని జిల్లా జిల్లాలను ప్రదర్శిస్తుంది మరియు పైప్ ద్వారా వేరు చేయబడిన ఆరోహణ క్రమంలో వాటిని ఆర్డర్ చేస్తుంది.
గమనిక: GROUP_CONCAT () ఫంక్షన్ మొత్తం ఫంక్షన్. కాబట్టి, మీరు ఫంక్షన్ లోపల ఆర్డర్ బై స్టేట్మెంట్ను పేర్కొనడం అవసరం మరియు ఎంపిక ప్రకటనలో కాదు.
ముగింపు
ఈ ట్యుటోరియల్లో చర్చించిన MySQL GROUP_CONCAT () ఫంక్షన్ ఉపయోగకరమైన ఫంక్షన్, ఇది నకిలీలు మరియు క్రమం లేని డేటాను కలిగి ఉన్న పట్టిక నుండి ప్రత్యేకమైన, క్రమబద్ధీకరించిన మరియు వ్యవస్థీకృత డేటాను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది.
మరింత తెలుసుకోవడానికి డాక్స్ లేదా మా ఇతర MySQL ట్యుటోరియల్లను పరిగణించండి.