স্ট্রিং এর জন্য মাইএসকিউএল গ্রুপ কনক্যাট

Mysql Group Concat Strings



GROUP _CONCAT ফাংশন হল একটি গ্রুপ বাই সমষ্টিগত ফাংশন যা আপনাকে একাধিক সারি থেকে একক ক্ষেত্রের মধ্যে কলামের মান একত্রিত করতে দেয়। এটি একটি স্ট্রিং ফেরত দেয় যদি সেট গোষ্ঠীতে এক বা নাল কলাম মান থাকে এবং যদি কোনটি না পাওয়া যায় তবে একটি শূন্য মান প্রদান করে।

এই টিউটোরিয়ালটি আপনাকে শেখাবে কিভাবে MySQL GROUP_CONCAT () ফাংশন ব্যবহার করে একটি গ্রুপ থেকে স্ট্রিংগুলিকে বিভিন্ন বিকল্পের সাথে একত্রিত করা যায়।







মৌলিক ব্যবহার

যেমনটি আমরা উল্লেখ করেছি, এই ফাংশনটি সংযোজিত অ-শূন্য মানগুলির মানগুলির সাথে একটি স্ট্রিং ফলাফল প্রদান করে বা যদি কোনও অস্তিত্ব না থাকে তবে একটি নুল।



সাধারণ বাক্য গঠন হল:



GROUP_CONCAT ([ DISTINCT ]এক্সপ্রেস[,এক্সপ্রেস ...]
[ আদেশ দ্বারা এক্সপ্রেস
[ এএসসি | ডিইএসসি ] [,col_name ...]]
[SEPARATOR str_val])

ব্যাখ্যা

উপরের সিনট্যাক্স থেকে, আপনি দেখতে পাচ্ছেন যে GROUP_CONCAT ফাংশন বিভিন্ন বিকল্প নির্দিষ্ট করার জন্য MySQL ধারা এবং সীমাবদ্ধতা ব্যবহার করে:





  1. পার্থক্য: ডিএসটিআইএনসিটি ক্লজ সংযোজন প্রক্রিয়া থেকে সেট গ্রুপের ডুপ্লিকেট মানগুলি অপসারণ করতে সহায়তা করে। এটি কিভাবে কাজ করে তা বুঝতে MySQL DISTINCT ব্যাখ্যা করে আমাদের টিউটোরিয়ালটি বিবেচনা করুন।
  2. আদেশ দ্বারা: পরবর্তী ধারাটি হল অর্ডার বাই যা একটি নির্দিষ্ট ক্রমে মানগুলি সাজাতে সহায়তা করে। অর্ডার হয় আরোহী অথবা অবরোহী। যদি কোন ক্রম নির্দিষ্ট না করা হয়, মাইএসকিউএল মানগুলি আরোহী ক্রমে বিন্যাস করে।
  3. SEPARATOR : এই ধারা সংযোজন প্রক্রিয়ার উপর গোষ্ঠীর মানগুলির মধ্যে stringোকানো স্ট্রিং আক্ষরিক সেট করে। ডিফল্টরূপে, মাইএসকিউএল মানগুলি পৃথক করতে একটি কমা (,) ব্যবহার করে।

বিঃদ্রঃ: 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 কনক্যাট ( মান ) মান ('এইচ'),('এবং'),('দ্য'),('দ্য'),('অথবা');

যদি আমরা টেবিলের মানগুলির উপর একটি মৌলিক GROUP_CONCAT অপারেশন করি, তাহলে আমরা নীচে দেখানো একটি স্ট্রিং ফলাফল পাব:

নির্বাচন করুন GROUP_CONCAT ( DISTINCT মান আদেশ দ্বারা মান এএসসি SEPARATOR'') থেকে কনক্যাট ;

ফলে মান হল:

+ ------------------------------------------------- -------------- +
| GROUP_CONCAT ( DISTINCT মান আদেশ দ্বারা মান এএসসি SEPARATOR'') |
+ ------------------------------------------------- -------------- +
|ই এইচ এল ও|
+ ------------------------------------------------- -------------- +
সারি ভিতরে সেট (0.01সেকেন্ড)

আপনি উপরে দেওয়া ফলাফলের কি হয়েছে তা বোঝার অন্য উপায় চান?

আমরা মাইএসকিউএল DISTINCT ক্লজের কারণে সমস্ত ডুপ্লিকেট মানগুলি সরিয়ে দিয়ে শুরু করি যা একটি এল সরিয়ে দেয়।

পরবর্তীতে, আমরা (ASC) সংজ্ঞায়িত অনুসারে আরোহী ক্রমে অর্ডার দিয়ে এগিয়ে যাই, যা স্ট্রিংকে আকারে পরিবর্তন করে

হ্যালো->ইএইচএলও

পরিশেষে, আমরা সেট মানগুলির জন্য বিভাজক হিসাবে একটি স্থান ব্যবহার করে সংযোজন প্রক্রিয়াটি করি, যার ফলে {H, E, L, L O} থেকে E H L O স্ট্রিং হয়।

উদাহরণ ব্যবহারের ক্ষেত্রে

আসুন আমরা একটি বাস্তব ডাটাবেস গ্রহণ করি এবং আমরা GROUP_CONCAT () ফাংশন কিভাবে বাস্তবায়ন করতে পারি তা বোঝাতে এটি ব্যবহার করি। এই উদাহরণে, আমরা সাকিলা ডাটাবেস ব্যবহার করব, এবং বিশেষ করে, সাকিলা ডাটাবেস থেকে ঠিকানা সারণী।

আপনার উদাহরণের জন্য ডাটাবেস ডাউনলোড করতে নীচের সম্পদটি বিবেচনা করুন:

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

সাকিলা ডাটাবেসের ঠিকানা টেবিলে, আপনি জেলা কলাম পাবেন। নীচের ক্যোয়ারীতে দেখানো হিসাবে আমরা পাইপ দ্বারা পৃথক সমস্ত অনন্য জেলাগুলি পেতে পারি:

নির্বাচন করুন GROUP_CONCAT ( DISTINCT জেলা আদেশ দ্বারা জেলা SEPARATOR'|') থেকে সাকিলা. ঠিকানা সীমা 5;

উপরের ক্যোয়ারী সমস্ত DISTINCT জেলা প্রদর্শন করবে এবং তাদের একটি পাইপ দ্বারা পৃথক করা ক্রম অনুসারে আদেশ করবে।

বিঃদ্রঃ: GROUP_CONCAT () ফাংশন একটি সমষ্টিগত ফাংশন। অতএব, এটি প্রয়োজনীয় যে আপনি ফাংশনের ভিতরে অর্ডার বাই স্টেটমেন্ট নির্দিষ্ট করুন এবং SELECT স্টেটমেন্টে নয়।

উপসংহার

এই টিউটোরিয়ালে আলোচিত MySQL GROUP_CONCAT () ফাংশনটি একটি দরকারী ফাংশন যা আপনাকে একটি টেবিল থেকে অনন্য, সাজানো এবং সংগঠিত ডেটা তৈরি করতে দেয় যাতে ডুপ্লিকেট এবং অনিয়ন্ত্রিত ডেটা থাকতে পারে।

আরও জানতে ডক্স বা আমাদের অন্যান্য মাইএসকিউএল টিউটোরিয়ালগুলি বিবেচনা করুন।