MySQL-এ WHERE ক্লজে AND ও OR লজিক্যাল অপারেটর একসাথে ব্যবহার করে জটিল শর্তের উপর ভিত্তি করে ডেটা ফিল্টার করা যায়। অপারেটর প্রসিডেন্স মেনে AND-কে OR-এর চেয়ে বেশি অগ্রাধিকার দেওয়া হয়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable2015 (
-> StudentId INT,
-> StudentName VARCHAR(20),
-> StudentCountryName VARCHAR(20)
-> );
Query OK, 0 rows affected (1.20 sec)
mysql> INSERT INTO DemoTable2015 VALUES (1, 'Chris', 'US');
mysql> INSERT INTO DemoTable2015 VALUES (2, 'Bob', 'UK');
mysql> INSERT INTO DemoTable2015 VALUES (3, 'David', 'AUS');
mysql> INSERT INTO DemoTable2015 VALUES (4, 'Robert', 'US');
mysql> SELECT * FROM DemoTable2015; +-----------+-------------+--------------------+ | StudentId | StudentName | StudentCountryName | +-----------+-------------+--------------------+ | 1 | Chris | US | | 2 | Bob | UK | | 3 | David | AUS | | 4 | Robert | US | +-----------+-------------+--------------------+
AND/OR মিলিত কোয়ারি
শর্ত: StudentName = 'David' OR (StudentCountryName = 'UK' AND StudentId = 3)
mysql> SELECT * FROM DemoTable2015
-> WHERE StudentName = 'David'
-> OR StudentCountryName = 'UK' AND StudentId = 3;
ফলাফল
+-----------+-------------+--------------------+ | StudentId | StudentName | StudentCountryName | +-----------+-------------+--------------------+ | 3 | David | AUS | +-----------+-------------+--------------------+
ব্যাখ্যা: AND প্রথমে ইভ্যালুয়েট হয়, তাই UK AND Id=3 মিথ্যা (Bob-এর ID 2)। শুধু StudentName='David' সত্য হয়েছে, সেজন্য সেটি রিটার্ন হয়েছে। ব্র্যাকেট ব্যবহার করে লজিক স্পষ্ট করুন।