MySQL-এ স্ট্রিং ভ্যালুর ভিতর থেকে নির্দিষ্ট ডিলিমিটারের পরে থাকা অংশ (যেমন তারিখ) বের করতে SUBSTRING_INDEX() ফাংশন দুবার নেস্টেড করে ব্যবহার করা হয়।
উদাহরণ
১. টেবিল তৈরি করুন
mysql> CREATE TABLE DemoTable (
-> Title TEXT
-> );
২. তারিখসহ স্ট্রিং ইনসার্ট করুন
mysql> INSERT INTO DemoTable VALUES('John has got joining date.12/31/2018');
mysql> INSERT INTO DemoTable VALUES('Carol has got joining date.01/11/2019');
mysql> INSERT INTO DemoTable VALUES('Sam will arrive at.12/03/2050');
৩. সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
আউটপুট:
+---------------------------------------+
| Title |
+---------------------------------------+
| John has got joining date.12/31/2018 |
| Carol has got joining date.01/11/2019 |
| Sam will arrive at.12/03/2050 |
+---------------------------------------+
৪. শেষ ডট (.) এর পরের অংশ বের করুন (তারিখ)
mysql> SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(Title, '.', -1), '.', 1) FROM DemoTable;
৫. ফলাফল
+----------------------------------------------------------+
| substring_index(substring_index(Title,'.', -1), '.', 1) |
+----------------------------------------------------------+
| 12/31/2018 |
| 01/11/2019 |
| 12/03/2050 |
+----------------------------------------------------------+
ব্যাখ্যা:
- বাহ্যিক
SUBSTRING_INDEX(..., '.', -1)- শেষ ডটের পরের অংশ নেয় (যেমন '12/31/2018')। - আভ্যন্তরিক
SUBSTRING_INDEX(..., '.', 1)- যদি তারিখের ভিতরও ডট থাকে তবে প্রথম ডটের আগের অংশ নেয় (সेफগার্ড)۔
আধুনিক বিকল্প (MySQL 8.0+): REGEXP_SUBSTR(Title, '[0-9]{2}/[0-9]{2}/[0-9]{4}') ব্যবহার করে সরাসরি রেগেক্স দিয়ে তারিখ বের করা যায়।