এজন্য CHAR_LENGTH() এবং REPLACE() ফাংশন ব্যবহার করুন। প্রথমে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Subject LONGTEXT
);
রেকর্ড যোগ করি:
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL,MongoDB');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL,MongoDB');
mysql> INSERT INTO DemoTable(Subject) VALUES('MongoDB');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
সকল রেকর্ড দেখতে:
mysql> SELECT * FROM DemoTable;
আউটপুট:
+----+---------------+ | Id | Subject | +----+---------------+ | 1 | MySQL,MongoDB | | 2 | MySQL,MongoDB | | 3 | MongoDB | | 4 | MySQL | +----+---------------+
ID ১-এ কমা-বিভক্ত মানগুলো কতটি আছে তা বের করার কোয়েরি:
mysql> SELECT Id,
CHAR_LENGTH(Subject) - CHAR_LENGTH(REPLACE(Subject, ',', '')) + 1 AS FreqSubject
FROM DemoTable WHERE CHAR_LENGTH(Subject) > 0 AND Id = 1;
আউটপুট:
+----+-------------+ | Id | FreqSubject | +----+-------------+ | 1 | 2 | +----+-------------+
ব্যাখ্যা: ফর্মুলা: CHAR_LENGTH(Subject) - CHAR_LENGTH(REPLACE(Subject, ',', '')) + 1
CHAR_LENGTH(Subject): মোট ক্যারেক্টার সংখ্যাREPLACE(Subject, ',', ''): কমা গুলো সরিয়ে দেয়CHAR_LENGTH(...): কমা বাদ দিয়ে ক্যারেক্টার সংখ্যা- বিয়োগ করলে কমার সংখ্যা পাওয়া যায়
+ 1: আইটেম সংখ্যা = কমার সংখ্যা + ১
সতর্কতা: এটি কেবল কমা-বিভক্ত স্ট্রিংয়ের জন্য কাজ করে। যদি স্পেস থাকে (', ') তবে REPLACE(Subject, ', ', '') ব্যবহার করুন।