MySQL-এ একাধিক শর্ত পূরণ করতে AND অপারেটর ব্যবহার করুন। সব শর্ত সত্য হলে সারিটি রিটার্ন করা হয়।
সিনট্যাক্স
SELECT * FROM table_name
WHERE column1 = value1 AND column2 = value2;
উদাহরণ
CREATE TABLE and_condition_demo (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
age INT
);
INSERT INTO and_condition_demo (name, age) VALUES
('Larry', 23), ('Mike', 21), ('Sam', 24),
('David', 26), ('Carol', 27), ('Bob', 28);
AND শর্তের সাথে ক্যোয়ারি
SELECT * FROM and_condition_demo WHERE name = 'Mike' AND age = 21;
ফলাফল
+----+------+------+
| id | name | age |
+----+------+------+
| 2 | Mike | 21 |
+----+------+------+
AND এর প্রাধান্য (Precedence)
AND-এর প্রাধান্য OR-এর চেয়ে বেশি। বন্ধনি ব্যবহার করে স্পষ্ট করুন:
-- এটি: (name = 'Mike' AND age = 21) OR name = 'Sam'
SELECT * FROM and_condition_demo WHERE name = 'Mike' AND age = 21 OR name = 'Sam';
-- ভালো: স্পষ্ট বন্ধনি
SELECT * FROM and_condition_demo WHERE (name = 'Mike' AND age = 21) OR name = 'Sam';
AND এর সাথে অন্যান্য অপারেটর
-- রেঞ্জ চেক
SELECT * FROM and_condition_demo WHERE age >= 20 AND age <= 25;
-- স্ট্রিং ও নম্বর মিশ্রিত
SELECT * FROM and_condition_demo WHERE name LIKE 'M%' AND age > 20;
-- NULL চেক
SELECT * FROM table WHERE col1 = 'value' AND col2 IS NOT NULL;
পারফরম্যান্স টিপ
- সবচেয়ে সিলেক্টিভ (সর্বাধিক ফিল্টার করে এমন) শর্তটি প্রথমে রাখুন
- কম্পোজিট ইনডেক্স তৈরি করুন:
INDEX idx_name_age (name, age) EXPLAINদিয়ে এক্সিকিউশন প্ল্যান চেক করুন
শর্ট-সার্কিট ইভ্যালুয়েশন
MySQL বাম থেকে ডানে ইভ্যালুয়েট করে। যদি প্রথম শর্ত FALSE হয়, বাকিগুলো চেক করা হয় না। এটি পারফরম্যান্স বাড়াতে পারে।