MySQL-এ কমা-সেপারেটেড স্ট্রিং-এ মোট কতটি ভ্যালু আছে তা গণনা করা
একটি কলামে কমা দিয়ে আলাদা করা ভ্যালুগুলো থাকলে, মোট ভ্যালুর সংখ্যা বের করতে CHAR_LENGTH() এবং REPLACE() ফাংশন ব্যবহার করা হয়।
সিনট্যাক্স
SELECT *,
(CHAR_LENGTH(yourColumnName) - CHAR_LENGTH(REPLACE(yourColumnName, ',', '')) + 1) AS TotalValues
FROM yourTableName;
লজিক: CHAR_LENGTH(col) - CHAR_LENGTH(REPLACE(col, ',', '')) = কমার মোট সংখ্যা। কমার সংখ্যা + 1 = মোট ভ্যালুর সংখ্যা।
উদাহরণ
টেবিল তৈরি
mysql> CREATE TABLE CountValuesCommaSeparated (
-> Id INT NOT NULL AUTO_INCREMENT,
-> CommaSeparatedValue TEXT,
-> PRIMARY KEY(Id)
-> );
ডেটা ইনসার্ট
mysql> INSERT INTO CountValuesCommaSeparated(CommaSeparatedValue) VALUES('101,104,1900,46675,7895');
mysql> INSERT INTO CountValuesCommaSeparated(CommaSeparatedValue) VALUES('1010,18949,37465');
mysql> INSERT INTO CountValuesCommaSeparated(CommaSeparatedValue) VALUES('2010,1201,2743874,7485');
mysql> INSERT INTO CountValuesCommaSeparated(CommaSeparatedValue) VALUES('4757,457587,48586,378575,3874765,487565');
গণনা সহ সিলেক্ট
mysql> SELECT *,
-> (CHAR_LENGTH(CommaSeparatedValue) - CHAR_LENGTH(REPLACE(CommaSeparatedValue, ',', '')) + 1) AS TotalValue
-> FROM CountValuesCommaSeparated;
ফলাফল
+----+-----------------------------------------+------------+ | Id | CommaSeparatedValue | TotalValue | +----+-----------------------------------------+------------+ | 1 | 101,104,1900,46675,7895 | 5 | | 2 | 1010,18949,37465 | 3 | | 3 | 2010,1201,2743874,7485 | 4 | | 4 | 4757,457587,48586,378575,3874765,487565 | 6 | +----+-----------------------------------------+------------+
নোট: যদি স্ট্রিং খালি হয় (''), তবে ফলাফল ১ আসবে (যা ভুল)। সেক্ষেসে CASE WHEN TRIM(col) = '' THEN 0 ELSE ... END ব্যবহার করুন।