LIKE কী?
পুরো মান না জেনে, মানের একটি অংশ দিয়ে খুঁজতে LIKE ব্যবহার করি। যেমন নাম কোন অক্ষর দিয়ে শুরু, বা ঠিকানার শেষে কী আছে।
LIKE এর সাথে দুটি বিশেষ চিহ্ন (wildcard) ব্যবহার হয়:
%→যেকোনো সংখ্যক অক্ষর (শূন্য অক্ষরও হতে পারে)_→ঠিক একটি অক্ষর
সিনট্যাক্স
WHERE [কলামের নাম] LIKE '[প্যাটার্ন]'
| প্যাটার্ন | অর্থ | মিলবে |
|---|---|---|
'P%' | P দিয়ে শুরু | Pappu, Priya |
'%a' | a দিয়ে শেষ | Rudra, Priya |
'%ab%' | মাঝে কোথাও ab আছে | Habib |
'_a%' | দ্বিতীয় অক্ষর a | Habib, Pappu |
'____' | ঠিক ৪ অক্ষর | Anik |
উদাহরণ ১: শুরুর অক্ষর
যাদের নাম P দিয়ে শুরু, তাদের খুঁজি।
SELECT * FROM student WHERE name LIKE 'P%';LIKE→আংশিক মিল খোঁজে'P%'→প্রথম অক্ষর P, পরে যেকোনো কিছু
| roll | name | class | section | group_name |
|---|---|---|---|---|
| 1 | Rudra | 11 | A | Science |
| 2 | Habib | 12 | A | Commerce |
| 3 | Pappu | 11 | B | Arts |
| 4 | Anik | 12 | B | Science |
| 5 | Priya | 11 | A | Commerce |
| roll | name | class | section | group_name |
|---|---|---|---|---|
| 3 | Pappu | 11 | B | Arts |
| 5 | Priya | 11 | A | Commerce |
উদাহরণ ২: শেষের অংশ
যাদের ঠিকানার শেষে ganj আছে, তাদের খুঁজি।
SELECT roll, address
FROM contact
WHERE address LIKE '%ganj';| roll | address |
|---|---|
| 1 | Gopalganj |
| 2 | Narayanganj |
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%';| roll | mobile_no |
|---|---|
| 1 | 01711111111 |
এখানে 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';| roll | mobile_no |
|---|---|
| 5 | 01555555555 |
