কেন LIKE দরকার — আগে গল্প
মূল প্রশ্ন: আমরা যখন পুরো value জানি না, কিন্তু value-এর একটা অংশ জানি, তখন কীভাবে database-এ search করব?
গল্প ১ — Google Search
“তার নাম সম্ভবত Rahim দিয়ে শুরু…” — পুরো নাম জানি না।
পুরো নাম না জানলে database-এ কীভাবে খুঁজব? Exact = কি যথেষ্ট?
গল্প ২ — E-commerce Support
- নাম
Rahimদিয়ে শুরু - Email
gmailদিয়ে শেষ / গমেইল - নামের মধ্যে
Ahmedআছে
গল্প ৩ — HR Employee DB
নাম A দিয়ে শুরু / Rahman দিয়ে শেষ / Khan আছে / email-এ gmail / department Data দিয়ে শুরু।
গল্প ৪ — Product Search
iPhone দিয়ে শুরু, Laptop আছে, Pro দিয়ে শেষ, Samsung আছে — exact = যথেষ্ট নয়।
LIKE আসলে কী?
LIKE = WHERE-এর সাথে ব্যবহার করা pattern matching অপারেটর। পুরো মান না জেনেও একটা অংশ/প্যাটার্ন দিয়ে সারি খুঁজে।
- কখন: নাম/ইমেইল/প্রোডাক্ট পার্শিয়াল সার্চ
- ডেটা পরিবর্তন করে? না
- ডিলিট করে? না — শুধু ফিল্টার
Exact (=)
শুধু ঠিক Rahim।
Pattern (LIKE)
Rah দিয়ে শুরু সব।
Basic LIKE সিনট্যাক্স
| id | customer_name | city |
|---|---|---|
| 1 | Rahim | Dhaka |
| 2 | Rahim Ahmed | Sylhet |
| 3 | Karim | Dhaka |
| 4 | Abdur Rahim | Chittagong |
% ছাড়া LIKE 'Rahim' প্রায় exact মিলের মতো — শুধু ঠিক Rahim।
% Wildcard — সবচেয়ে গুরুত্বপূর্ণ
% মানে: যেকোনো সংখ্যক character (০ বা তার বেশি)।1. Starts With — 'Rah%'
2. Ends With — '%Rahim'
3. Contains — '%Rahim%'
_ Wildcard — ঠিক একটা অক্ষর
_ = ঠিক একটা character।মিলবে: AB, AC — মিলবে না: ABC, ABCD।
| Pattern | Meaning |
|---|---|
% | Any number of characters |
_ | Exactly one character |
% = অনেক (বা শূন্য); _ = অবশ্যই একটা।Pattern Masterclass
| Pattern | Meaning | Example match | Non-match |
|---|---|---|---|
'A%' | Starts with A | Apple | Banana |
'%A' | Ends with A | Data | Apple |
'%A%' | Contains A | Data | Moon |
'A_' | A + 1 char | AB | ABC |
'_A' | 1 char + A | BA | A |
'A__' | A + 2 chars | ABC | AB |
'%phone%' | Contains phone | Smartphone | Tablet |
'___' | Exactly 3 chars | Cat | Cats |
LIKE 'Sa%' — Samsung মিলবে? (হ্যাঁ) LIKE '_a_' — Cat মিলবে? (হ্যাঁ, ৩ অক্ষর)
LIKE + WHERE ফ্লো
- Cities starting with D:
city LIKE 'D%' - Dept containing Data:
department LIKE '%Data%' - Emails ending .com:
email LIKE '%.com'
LIKE + AND / OR
AND = দুটো শর্তই সত্যি (A দিয়ে শুরু এবং ঢাকা)।
OR = যেকোনো একটা সত্যি (A বা M দিয়ে শুরু)।
NOT LIKE
- Email Gmail দিয়ে শেষ নয়:
email NOT LIKE '%gmail.com' - Product-এ Phone নেই:
product_name NOT LIKE '%Phone%'
LIKE + ORDER BY + LIMIT
বিজনেস কেস স্টাডি
Customers / Products / Employees — সার্চ প্রশ্ন ও সমাধান:
- নাম A দিয়ে শুরু →
LIKE 'A%' - নাম Rahman দিয়ে শেষ →
LIKE '%Rahman' - নামে Ahmed →
LIKE '%Ahmed%' - Gmail →
email LIKE '%gmail.com' - City D দিয়ে শুরু →
city LIKE 'D%' - Product Laptop →
LIKE '%Laptop%' - Samsung দিয়ে শুরু →
LIKE 'Samsung%' - Pro দিয়ে শেষ →
LIKE '%Pro' - Phone আছে →
LIKE '%Phone%' - Employee M দিয়ে শুরু →
LIKE 'M%' - Dept Data →
department LIKE '%Data%' - Emp email gmail →
email LIKE '%gmail%'
MySQL Workbench প্র্যাকটিক্যাল
Step 4–12 অনুশীলন
city LIKE 'D_' Dhaka মিলবে না (৫ অক্ষর)। D% ব্যবহার করো।কমন বিগিনার ভুল
Mistake 1 — = এর সাথে %
Mistake 2 — % ও _ গুলিয়ে ফেলা
% = অনেক; _ = ঠিক একটা।
Mistake 3 — % ছাড়া contains আশা
LIKE 'Rah' ≈ exact; contains চাইলে '%Rah%'।
Mistake 4 — Quotes ভুলে যাওয়া
Mistake 5 — Wildcard placement
LIKE vs অন্যান্য
| = | LIKE |
|---|---|
| Exact | Pattern |
| পুরো মান জানা | আংশিক pattern যথেষ্ট |
name = 'Rahim' | name LIKE 'Rah%' |
- IN: নির্দিষ্ট লিস্টের মধ্যে মিল (
IN ('A','B')) — pattern নয়। - REGEXP: আরও শক্তিশালী pattern (আজ শুধু জানবে — গভীরে যাব না)। LIKE সহজ সার্চের জন্য।
- DISTINCT: ইউনিক রেজাল্ট; LIKE = pattern দিয়ে ফিল্টার।
এক্সিকিউশন ফ্লো (শিক্ষার মডেল)
ইন্ডাস্ট্রি ব্যবহার
| রোল | LIKE দিয়ে কী করেন |
|---|---|
| Data Analyst | কাস্টমার নাম সার্চ |
| Support | পার্শিয়াল নাম/ইমেইল |
| E-commerce | প্রোডাক্ট সার্চ |
| HR | কর্মীর নাম/ডিপার্টমেন্ট |
| Marketing | সেগমেন্ট খোঁজা |
| Data Engineer | ডেটা কোয়ালিটি ইনভেস্টিগেশন |
| Data Scientist | EDA টেক্সট এক্সপ্লোর |
| Backend Dev | অ্যাপ সার্চ ফিচার |
ক্লাসরুম অ্যাক্টিভিটি
মিনি প্রজেক্ট — Search System
- পার্শিয়াল নামে কাস্টমার
- পার্শিয়াল নামে প্রোডাক্ট
- Gmail ইউজার
- নির্দিষ্ট অক্ষরে শুরু city
- ক্যাটাগরিতে keyword
- ডিপার্টমেন্ট keyword
- ম্যাচিং প্রোডাক্ট টপ ১০ (ORDER BY + LIMIT)
পারফরম্যান্স টিপস (বিগিনার)
LIKE '%keyword%'বড় টেবিলে ধীর হতে পারে।- শুরুতে
%থাকলে সাধারণ index কম কাজে লাগে। LIKE 'keyword%'প্রায়ই বেশি index-friendly।- Exact জানা থাকলে
=ব্যবহার করো। - খুব বড় সার্চে পরে full-text / সার্চ ইঞ্জিন — আজ শুধু ধারণা।
রিভিশন ও চিট শিট
- LIKE = pattern search
- % = যেকোনো সংখ্যক অক্ষর; _ = ঠিক একটা
- NOT LIKE = প্যাটার্ন মিলে না
- Starts / Ends / Contains
- = exact; LIKE partial
'A%' → Starts with A
'%A' → Ends with A
'%A%' → Contains A
'A_' → A + exactly 1 character
'_A' → Exactly 1 character + A
'A__' → A + exactly 2 charactersMCQ (২০+)
ভিভা (২০+)
ইন্টারভিউ Top 30
ক্লিক করো — উত্তর + উদাহরণ + ভুল + ফলো-আপ + ইউজ-কেস।
হোমওয়ার্ক
প্রশ্নসমূহ
- নাম A দিয়ে শুরু
- নাম n দিয়ে শেষ
- নামে Rah
- Gmail emails
- City D দিয়ে শুরু
- Products containing Phone
- Products ending Pro
- Products starting Samsung
- Employees dept contains Data
- Laptop products, highest price, top 5
উত্তর (ক্লিক)
WHERE name LIKE 'A%'WHERE name LIKE '%n'WHERE name LIKE '%Rah%'WHERE email LIKE '%gmail.com'WHERE city LIKE 'D%'WHERE product_name LIKE '%Phone%'WHERE product_name LIKE '%Pro'WHERE product_name LIKE 'Samsung%'WHERE department LIKE '%Data%'WHERE product_name LIKE '%Laptop%' ORDER BY price DESC LIMIT 5