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

MySQL-এ % চিহ্নের পরিবর্তে একটি ক্যারেক্টার ম্যাচ করা

MySQL-এ শুধুমাত্র একটি ক্যারেক্টার ম্যাচ করতে % চিহ্নের পরিবর্তে আন্ডারস্কোর (_) ব্যবহার করতে হয়। সিনট্যাক্স নিচে দেওয়া হলো:

SELECT *FROM yourTableName WHERE yourColumnName LIKE 'yourString_';

এটি বুঝতে একটি টেবিল তৈরি করা যাক। টেবিল তৈরির কোয়েরি:

mysql> create table OneCharactermatchDemo  
    -> (  
    -> Id int NOT NULL AUTO_INCREMENT,  
    -> PassoutYear year,  
    -> PRIMARY KEY(Id)  
    -> ); Query OK, 0 rows affected (0.76 sec)

ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:

mysql> insert into OneCharactermatchDemo(PassoutYear) values('2008'); Query OK, 1 row affected (0.14 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2007'); Query OK, 1 row affected (0.18 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2010'); Query OK, 1 row affected (0.10 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2011'); Query OK, 1 row affected (0.13 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2012'); Query OK, 1 row affected (0.12 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2006'); Query OK, 1 row affected (0.10 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2019'); Query OK, 1 row affected (0.14 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2016'); Query OK, 1 row affected (0.13 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2017'); Query OK, 1 row affected (0.34 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2015'); Query OK, 1 row affected (0.17 sec) mysql> insert into OneCharactermatchDemo(PassoutYear) values('2020'); Query OK, 1 row affected (0.13 sec)

সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:

mysql> select *from OneCharactermatchDemo;

আউটপুট নিচে দেওয়া হলো:

+----+-------------+ | Id | PassoutYear | +----+-------------+ |  1 |       2008 | |  2 |       2007 | |  3 |       2010 | |  4 |       2011 | |  5 |       2012 | |  6 |       2006 | |  7 |       2019 | |  8 |       2016 | |  9 |       2017 | | 10 |       2015 | | 11 |       2020 | +----+-------------+ 11 rows in set (0.00 sec)

শুধুমাত্র একটি ক্যারেক্টার ম্যাচ করতে আন্ডারস্কোর (_) ব্যবহার করার কোয়েরি নিচে দেওয়া হলো:

mysql> select *from OneCharactermatchDemo where PassoutYear Like '200_';

আউটপুট নিচে দেওয়া হলো:

+----+-------------+ | Id | PassoutYear | +----+-------------+ |  1 |       2008 | |  2 |       2007 | |  6 |       2006 | +----+-------------+ 3 rows in set (0.00 sec)

ব্যাখ্যা: LIKE '200_' প্যাটার্নটি 200 দিয়ে শুরু হয়ে যেকোনো একটি ক্যারেক্টার로 শেষ হওয়া ভ্যালুগুলো ম্যাচ করে। এখানে 2008, 2007, 2006 ম্যাচ করেছে। % যেকোনো সংখ্যক ক্যারেক্টার ম্যাচ করে, কিন্তু _ শুধুমাত্র একটি ক্যারেক্টার ম্যাচ করে। এটি ফিক্সড-লেন্থ প্যাটার্ন ম্যাচিং-এ খুব কার্যকর।

  1. MySQL-এ শুধু একটি কলাম থেকে ডISTINCT ভ্যালু বের করা

  2. MySQL স্ট্রিংয়ে আন্ডারস্কোর (_) মিলানো

  3. MySQL-এ SOUNDEX() ফাংশন ব্যবহার করে ধ্বনিসাম্য খুঁজে বের করা

  4. MySQL-এ REPLACE() ফাংশন দিয়ে ক্যারেক্টার রিপ্লেস করা