like

পাঠ ৬ · LIKE

LIKE কী?

পুরো মান না জেনে, মানের একটি অংশ দিয়ে খুঁজতে LIKE ব্যবহার করি। যেমন নাম কোন অক্ষর দিয়ে শুরু, বা ঠিকানার শেষে কী আছে।

LIKE এর সাথে দুটি বিশেষ চিহ্ন (wildcard) ব্যবহার হয়:

  • %→যেকোনো সংখ্যক অক্ষর (শূন্য অক্ষরও হতে পারে)
  • _→ঠিক একটি অক্ষর

সিনট্যাক্স

SQL Syntax Rule
WHERE [কলামের নাম] LIKE '[প্যাটার্ন]'
প্যাটার্নের উদাহরণ (student টেবিলের name কলামে)
প্যাটার্নঅর্থমিলবে
'P%'P দিয়ে শুরুPappu, Priya
'%a'a দিয়ে শেষRudra, Priya
'%ab%'মাঝে কোথাও ab আছেHabib
'_a%'দ্বিতীয় অক্ষর aHabib, Pappu
'____'ঠিক ৪ অক্ষরAnik

উদাহরণ ১: শুরুর অক্ষর

যাদের নাম P দিয়ে শুরু, তাদের খুঁজি।

SELECT * FROM student WHERE name LIKE 'P%';
  • LIKE→আংশিক মিল খোঁজে
  • 'P%'→প্রথম অক্ষর P, পরে যেকোনো কিছু
student (মূল টেবিল)৫টি সারি
rollnameclasssectiongroup_name
1Rudra11AScience
2Habib12ACommerce
3Pappu11BArts
4Anik12BScience
5Priya11ACommerce
↓ WHERE name LIKE 'P%'
ফলাফল২টি সারি
rollnameclasssectiongroup_name
3Pappu11BArts
5Priya11ACommerce

উদাহরণ ২: শেষের অংশ

যাদের ঠিকানার শেষে ganj আছে, তাদের খুঁজি।

SELECT roll, address
FROM contact
WHERE address LIKE '%ganj';
ফলাফল২টি সারি
rolladdress
1Gopalganj
2Narayanganj

Gopalganj ও Narayanganj দুটোই ganj দিয়ে শেষ। শুরুতে যা-ই থাকুক, % তা ধরে নেয়।

উদাহরণ ৩: _ দিয়ে নির্দিষ্ট জায়গা

যাদের নামের দ্বিতীয় অক্ষর a, তাদের খুঁজি। প্রথম অক্ষর যেকোনো একটি, তাই একটি _ দিই।

SELECT name FROM student WHERE name LIKE '_a%';
ফলাফল২টি সারি
name
Habib
Pappu

আরও একটি উদাহরণ: মোবাইল নম্বর

যাদের মোবাইল নম্বর 017 দিয়ে শুরু, তাদের roll ও নম্বর দেখি।

SELECT roll, mobile_no
FROM contact
WHERE mobile_no LIKE '017%';
ফলাফল১টি সারি
rollmobile_no
101711111111

এখানে LIKE কাজ করছে কারণ mobile_no কলাম VARCHAR অর্থাৎ লেখা। তাই প্যাটার্ন কোটের মধ্যে লিখেছি।

মনে রাখো
  • প্যাটার্ন সবসময় সিঙ্গেল কোটের মধ্যে লিখতে হয়।
  • % যেকোনো সংখ্যক অক্ষর, _ ঠিক একটি অক্ষর।
  • MySQL ও SQLite এ সাধারণত LIKE ছোট বড় হাতের অক্ষর আলাদা করে না। তাই 'p%' লিখলেও Pappu ও Priya আসবে। কিছু DBMS এ এই নিয়ম আলাদা।
  • অংশ নয়, পুরো মান মেলাতে চাইলে = ব্যবহার করো। name LIKE 'Anik' এর বদলে name = 'Anik' লেখো।

অনুশীলন

প্রতিটি প্রশ্নের Query নিজে লেখো। চাইলে SQL Playground এ টেবিল তৈরি করে চালিয়ে দেখো। তারপর উত্তর মিলিয়ে নাও।

১

যাদের নামের মধ্যে কোথাও ‘ri’ আছে, তাদের নাম দেখাও।

উত্তর দেখো
SELECT name FROM student WHERE name LIKE '%ri%';
ফলাফল১টি সারি
name
Priya
২

যেসব বিষয়ের নাম ics দিয়ে শেষ, সেগুলো দেখাও।

উত্তর দেখো
SELECT subject_name
FROM subject
WHERE subject_name LIKE '%ics';
ফলাফল২টি সারি
subject_name
Physics
Economics
৩

যাদের নাম ঠিক ৫ অক্ষরের, তাদের নাম দেখাও।

উত্তর দেখো
SELECT name FROM student WHERE name LIKE '_____';
ফলাফল৪টি সারি
name
Rudra
Habib
Pappu
Priya
৪

যাদের মোবাইল নম্বর 01 দিয়ে শুরু আর শেষ অঙ্ক 5, তাদের roll ও mobile_no দেখাও।

উত্তর দেখো
SELECT roll, mobile_no
FROM contact
WHERE mobile_no LIKE '01%5';
ফলাফল১টি সারি
rollmobile_no
501555555555