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

MySQL-এ AND শর্ত সঠিকভাবে ইমপ্লিমেন্ট করা

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 হয়, বাকিগুলো চেক করা হয় না। এটি পারফরম্যান্স বাড়াতে পারে।

  1. MySQL-এ তারিখ গণনা ও পুনরাবৃত্ত তারিখ বের করা

  2. MySQL-এ GROUP BY ও ORDER BY ব্যবহার করে যোগফল বের করে সর্ট করা

  3. MySQL에서 LIKE와 CHAR_LENGTH()를 한 쿼리에 함께 사용하기

  4. MySQL에서 중복 튜플 찾기와 개수 세기 (GROUP BY HAVING)