MySQL-এ কমা-সেপারেটেড স্ট্রিং থেকে নির্দিষ্ট পজিশনের মান বের করার জন্য SUBSTRING_INDEX() ফাংশন দুবার ব্যবহার করা হয় (নেস্টেড)।
টেবিল এবং ডেটা
CREATE TABLE DemoTable1615 (
ListOfSubject TEXT
);
INSERT INTO DemoTable1615 VALUES('Python,Java,MySQL,MongoDB,C,C++,ASP.net');
কুয়েরি: ৪র্থ পজিশনের মান (MongoDB)
SELECT SUBSTRING_INDEX(
SUBSTRING_INDEX(ListOfSubject, ',', 4),
',', -1
) AS Position FROM DemoTable1615;
ফলাফল
+----------+
| Position |
+----------+
| MongoDB |
+----------+
কিভাবে কাজ করে
SUBSTRING_INDEX(ListOfSubject, ',', 4)— প্রথম ৪টি আইটেম নেয়:'Python,Java,MySQL,MongoDB'SUBSTRING_INDEX(..., ',', -1)— সেটির শেষ আইটেম নেয়:'MongoDB'
সাধারণ সূত্র
SUBSTRING_INDEX(SUBSTRING_INDEX(str, delim, n), delim, -1)
-- n-তম এলিমেন্ট বের করে (1-ভিত্তিক)
সতর্কতা
- পজিশন ১-ভিত্তিক (১ = প্রথম)
- স্পেস থাকলে কাজ নাও করতে পারে:
'Python, Java'→ TRIM ব্যবহার করুন - বড় ডেটার জন্য JSON বা নরমালাইজড টেবিল ভালো
MySQL 8.0+: JSON_TABLE (আধুনিক)
SELECT jt.val FROM DemoTable1615,
JSON_TABLE(CONCAT('["', REPLACE(ListOfSubject, ',', '","'), '"]'),
'$[*]' COLUMNS(val VARCHAR(100) PATH '$')) AS jt
WHERE jt.ordinality = 4;