কম্পিউটার টিউটোরিয়াল

MySQL-এ ORDER BY INSTR() দিয়ে নির্দিষ্ট শব্দवाले রেকর্ড প্রথমে দেখানো

MySQL-এ INSTR() ফাংশন ব্যবহার করে কোনো স্ট্রিং-এ নির্দিষ্ট শব্দ বা সাবস্ট্রিং প্রথম কোথায় পাওয়া যায় তা বের করা যায়। এটিকে ORDER BY-এ ব্যবহার করে সে শব্দवाले রেকর্ডগুলো শুরুতে আনা যায়।

সিনট্যাক্স

INSTR(string, substring)
  • সাবস্ট্রিং খুঁজে পেলে অবস্থান (১-ভিত্তিক) রিটার্ন করে
  • নাইলে ০ রিটার্ন করে

উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable822(Word text); 
Query OK, 0 rows affected (1.11 sec)
mysql> insert into DemoTable822 values('Forever'); 
Query OK, 1 row affected (0.26 sec) 
mysql> insert into DemoTable822 values('ever'); 
Query OK, 1 row affected (1.31 sec) 
mysql> insert into DemoTable822 values('every'); 
Query OK, 1 row affected (0.25 sec) 
mysql> insert into DemoTable822 values('everyday'); 
Query OK, 1 row affected (0.58 sec)

সকল রেকর্ড দেখানো

mysql> select * from DemoTable822;
+----------+
| Word     |
+----------+
| Forever  |
| ever     |
| every    |
| everyday |
+----------+
4 rows in set (0.00 sec)

'ever' শব্দ থাকা রেকর্ডগুলো 'ever'-এর অবস্থান অনুযায়ী সাজানো

mysql> select * from DemoTable822 where Word LIKE '%ever%' order by INSTR(Word, 'ever'), Word;
+----------+
| Word     |
+----------+
| ever     |
| every    |
| everyday |
| Forever  |
+----------+
4 rows in set (0.00 sec)

ব্যাখ্যা

WordINSTR(Word, 'ever')অর্ডার
ever1 (শুরুতেই)১ম
every1 (শুরুতেই)২য় (Word ASC-এ 'ever' এর পর)
everyday1 (শুরুতেই)৩য়
Forever4 ('For' এর পর)৪র্থ

WHERE ক্লজে INSTR ব্যবহার

WHERE INSTR(Word, 'ever') > 0

LIKE '%ever%'-এর চেয়ে কিছুটা দ্রুত হতে পারে (কেস-সেনসিটিভ)।

কেস-ইনসেনসিটিভ সার্চ

ORDER BY INSTR(LOWER(Word), 'ever')

MySQL 8.0+ Regexp বিকল্প

ORDER BY (Word REGEXP '^ever') DESC, Word

শুরুতে 'ever' থাকলে ১ (TRUE), নাইলে ০ (FALSE) — DESC দিয়ে TRUEवाले প্রথমে।

  1. MySQL-এ কমা-বিন্যস্ত স্ট্রিং থেকে নির্দিষ্ট শব্দ মুছে ফেলা (SET টাইপ ও বিট অপারেশন)

  2. MySQL-এ শুরুতম অক্ষর অনুযায়ী অর্ডার বাই কীভাবে করবেন?

  3. MySQL-এ RegExp ব্যবহার করে নির্দিষ্ট শব্দ খুঁজে বের করা

  4. MySQL-এ নির্দিষ্ট ভ্যালু প্রথমে দেখিয়ে বাকি অর্ডার করানো (ORDER BY ট্রিক)