Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การดึงข้อมูลเฉพาะเจาะจงด้วย AND และ OR ใน MySQL

การใช้งาน 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);

ผลลัพธ์

StudentIdStudentNameStudentCountryName
3DavidAUS

ข้อสังเกต: เนื่องจาก AND มี precedence สูงกว่า OR เงื่อนไข StudentCountryName = 'UK' AND StudentId = 3 จะถูกประเมินก่อน ทำให้แถวที่ 2 (Bob, UK) ไม่ตรงเงื่อนไขเพราะ StudentId = 2