MySQL การใช้งานโอเปอเรเตอร์ AND, OR และ NOT

AND, OR และ NOT เป็นโอเปอเรเตอร์ที่ใช้งานร่วมกับ WHERE เพื่อกรองข้อมูลด้วยเงื่อนไขมากกว่า 1 เงื่อนไขในการดึงข้อมูลจากฐานข้อมูล โดยที่

  • AND จะแสดงผลลัพธ์เมื่อเงื่อนไขทุกเงื่อนไขเป็นจริง
  • OR จะแสดงผลลัพธ์เมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง
  • NOT จะแสดงผลลัพธ์เมื่อเงื่อนไขไม่เป็นจริง

รูปแบบการใช้งานโอเปอเรเตอร์ AND

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

รูปแบบการใช้งานโอเปอเรเตอร์ OR

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

รูปแบบการใช้งานโอเปอเรเตอร์ NOT

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

ตัวอย่างการใช้งาน

AND ใช้เมื่อ ทุกเงื่อนไขต้องเป็นจริง ข้อมูลจึงจะถูกแสดง

SQL
SELECT title, rating, length
FROM film
WHERE rating = 'PG' AND length > 120;
  • WHERE rating = 'PG' AND length > 120 กำหนดเงื่อนไขให้แสดงเฉพาะภาพยนตร์ที่
    • มีเรตติ้งเป็น 'PG'
    • และมีความยาว มากกว่า 120 นาที

OR ใช้เมื่อ อย่างน้อยหนึ่งเงื่อนไขเป็นจริง จึงจะแสดงข้อมูลนั้น

SQL
SELECT title, rating
FROM film
WHERE rating = 'G' OR rating = 'PG';
  • WHERE rating = 'G' OR rating = 'PG' กำหนดเงื่อนไขให้แสดงเฉพาะภาพยนตร์ที่มีเรตติ้งเป็น
    • 'G' = General Audiences (เหมาะสำหรับทุกวัย)
    • 'PG' = Parental Guidance (ควรมีผู้ปกครองให้คำแนะนำ)
  • ใช้คำสั่ง OR หมายความว่า ถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง ก็จะแสดงผลลัพธ์นั้น

NOT ใช้เพื่อ ปฏิเสธเงื่อนไข หรือแสดงข้อมูลที่ไม่ตรงตามเงื่อนไขนั้น

SQL
SELECT title, rating
FROM film
WHERE NOT rating = 'R';
  • WHERE NOT rating = 'R' กำหนดเงื่อนไขให้ แสดงเฉพาะภาพยนตร์ที่เรตติ้งไม่ใช่ ‘R’
  • NOT เป็นโอเปอเรเตอร์ที่ใช้สำหรับ ปฏิเสธเงื่อนไข

หรือจะใช้ NOT กับ IN ก็ได้ เช่น

SQL
SELECT title, rating
FROM film
WHERE rating NOT IN ('R', 'NC-17');
  • WHERE rating NOT IN ('R', 'NC-17') กำหนดเงื่อนไขให้ แสดงเฉพาะภาพยนตร์ที่ไม่ใช่เรต R และ NC-17
  • NOT IN (...) คือการปฏิเสธค่าที่อยู่ในรายการ

ตัวอย่างการใช้ AND OR NOT ร่วมกัน

SQL
SELECT title, rating, length
FROM film
WHERE (rating = 'PG' OR rating = 'G')
  AND length BETWEEN 90 AND 120
  AND NOT title LIKE 'A%';
  • WHERE (rating = 'PG' OR rating = 'G') กำหนดเงื่อนไขให้แสดงเฉพาะภาพยนตร์ที่มีเรตติ้งเป็น 'PG' หรือ 'G'
  • AND length BETWEEN 90 AND 120 กรองเพิ่มเติมเฉพาะภาพยนตร์ที่มีความยาวอยู่ในช่วง 90 ถึง 120 นาที
  • AND NOT title LIKE 'A%' ตัดภาพยนตร์ที่ ชื่อขึ้นต้นด้วยตัวอักษร A ออก
    • NOT LIKE 'A%' = ไม่ใช่ชื่อที่เริ่มต้นด้วย A
แชร์เรื่องนี้