การใช้งาน Boolean Operators ใน WHERE Clause
การรวมเงื่อนไข AND และ OR ต้องคำนึงถึงลำดับความสำคัญ (Precedence) โดย AND มีความสำคัญกว่า OR ควรใช้วงเล็บเพื่อความชัดเจน
ตัวอย่างสถานการณ์
ค้นหานักศึกษาที่ชื่อ "David" หรือ มาจาก "UK" และ มี StudentId = 3
โครงสร้างตารางและข้อมูล
CREATE TABLE DemoTable2015 (
StudentId INT,
StudentName VARCHAR(20),
StudentCountryName VARCHAR(20)
);
INSERT INTO DemoTable2015 VALUES
(1, 'Chris', 'US'),
(2, 'Bob', 'UK'),
(3, 'David', 'AUS'),
(4, 'Robert', 'US');
คำสั่ง Query
SELECT * FROM DemoTable2015
WHERE StudentName = 'David'
OR (StudentCountryName = 'UK' AND StudentId = 3);
ผลลัพธ์
| StudentId | StudentName | StudentCountryName |
|---|---|---|
| 3 | David | AUS |
ข้อสังเกต: เนื่องจาก AND มี precedence สูงกว่า OR เงื่อนไข StudentCountryName = 'UK' AND StudentId = 3 จะถูกประเมินก่อน ทำให้แถวที่ 2 (Bob, UK) ไม่ตรงเงื่อนไขเพราะ StudentId = 2