SQL WHERE IN – อธิบายด้วยตัวอย่าง

คุณเหนื่อยกับการกรองข้อมูลในฐานข้อมูลด้วยตนเองและมองหาวิธีที่มีประสิทธิภาพมากขึ้นในการกรองข้อมูลที่มีหลายค่าหรือไม่? SQL WHERE IN อาจเป็นทางออกที่คุณต้องการ!

หากคุณกำลังทำงานกับฐานข้อมูล SQL คุณอาจเจอตัวดำเนินการ WHERE IN โอเปอเรเตอร์นี้ใช้เพื่อระบุค่าหลายค่าในส่วนคำสั่ง WHERE ทำให้คุณสามารถกรองข้อมูลได้แม่นยำยิ่งขึ้น

ด้วยตัวดำเนินการนี้ คุณสามารถระบุรายการของค่าที่จะจับคู่กับคอลัมน์ในตารางของคุณได้ รายการนี้สามารถฮาร์ดโค้ดหรือสร้างขึ้นโดยแบบสอบถามย่อย ทำให้คุณมีความยืดหยุ่นอย่างมากในการกรองข้อมูลของคุณ

SQL WHERE IN – อธิบายด้วยตัวอย่าง

ตัวอย่างเช่น คุณสามารถใช้ตัวดำเนินการ IN เพื่อค้นหาลูกค้าทั้งหมดจากรายการเมืองเฉพาะ หรือเพื่อกรองผลลัพธ์ตามชุดรหัสผลิตภัณฑ์

ข้อดีอย่างหนึ่งของการใช้ตัวดำเนินการ WHERE IN คือทำให้การค้นหาของคุณมีประสิทธิภาพมากขึ้น ด้วยการใช้รายการค่าแทนเงื่อนไข OR หลายข้อ คุณสามารถลดปริมาณการประมวลผลที่ฐานข้อมูลต้องทำ

สิ่งนี้มีความสำคัญอย่างยิ่งเมื่อทำงานกับชุดข้อมูลขนาดใหญ่หรือการสืบค้นที่ซับซ้อน ซึ่งการปรับให้เหมาะสมเพียงเล็กน้อยก็สามารถสร้างความแตกต่างอย่างมากในด้านประสิทธิภาพได้

สารบัญ

SQL WHERE IN Clause คืออะไร?

ส่วนคำสั่ง SQL WHERE IN ใช้เพื่อกรองข้อมูลตามรายการของค่า ช่วยให้คุณสามารถระบุหลายค่าในส่วนคำสั่ง WHERE โดยใช้ชวเลขสำหรับหลายเงื่อนไขหรือ ไวยากรณ์สำหรับส่วนคำสั่ง WHERE IN สำหรับSQL Server , PostgreSQL, MYSQL และ Oracle เป็นดังนี้:

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1, value2, ...); 

หากเราพิจารณาคำสั่ง SELECT ข้างต้น ส่วนคำสั่ง WHERE IN จะช่วยให้คุณสามารถดึงข้อมูลจากตารางที่คอลัมน์ที่ระบุตรงกับค่าใดๆ ในรายการ เป็นไวยากรณ์ที่มีประโยชน์สำหรับการกรองข้อมูลเมื่อคุณมีชุดของค่าที่ต้องการค้นหา

SQL WHERE IN ข้อทำงานอย่างไร?

ส่วนคำสั่งทำงานโดยการเปรียบเทียบคอลัมน์ที่ระบุกับแต่ละค่าในรายการ ถ้าคอลัมน์ตรงกับค่าใดๆ ในรายการ แถวนั้นจะรวมอยู่ในชุดผลลัพธ์

สมมติว่าคุณมีตารางชื่อ "customers" ที่ประกอบด้วยสามคอลัมน์: "customer_id", "customer_name" และ "country" คุณต้องดึงข้อมูลลูกค้าทั้งหมดจากสหรัฐอเมริกา แคนาดา และเม็กซิโก ข้อความค้นหาต่อไปนี้จะแสดงให้คุณเห็นว่า WHERE IN clause ใช้อย่างไร: SELECT customer_id, customer_name, country FROM customers WHERE country IN ('USA','Canada','Mexico');

ตัวอย่างของ SQL WHERE IN Clause

หากคุณต้องการกรองผลลัพธ์ตามรายการค่าที่เป็นไปได้ คุณสามารถใช้ส่วนคำสั่ง SQL WHERE IN ข้อนี้เป็นวิธีง่ายๆ ในการเลือกแถวที่คอลัมน์ใดคอลัมน์หนึ่งตรงกับชุดค่าใดค่าหนึ่ง

ต่อไปนี้เป็นห้าตัวอย่างของวิธีใช้ประโยค:

  1. การใช้ SQL WHERE IN ประโยคที่มีค่าเดียว

สมมติว่าคุณต้องการเลือกแถวทั้งหมดในตารางที่มีการตั้งค่าคอลัมน์สถานะเป็น "เผยแพร่แล้ว" คุณสามารถทำได้โดยใช้คำสั่ง SQL ต่อไปนี้:

SELECT * 
FROM my_table 
WHERE status IN ('published');

ซึ่งจะส่งคืนแถวทั้งหมดที่มีการตั้งค่าคอลัมน์สถานะเป็น "เผยแพร่แล้ว"

  1. การใช้ SQL WHERE IN Clause ที่มีหลายค่า

สมมติว่าคุณต้องการเลือกแถวทั้งหมดที่มีการตั้งค่าคอลัมน์สถานะเป็น "เผยแพร่" หรือ "ร่าง" คุณสามารถใช้คำสั่ง SQL ต่อไปนี้:

SELECT * 
FROM my_table 
WHERE status IN ('published', 'draft');

ซึ่งจะส่งคืนแ���วทั้งหมดที่มีการตั้งค่าคอลัมน์สถานะเป็น "เผยแพร่แล้ว" หรือ "ฉบับร่าง" นอกจากนี้ คุณสามารถเพิ่มค่าได้มากเท่าที่คุณต้องการ โดยคั่นด้วยเครื่องหมายจุลภาค

  1. การใช้ SQL WHERE IN Clause พร้อมคำสั่ง Delete

สมมติว่าคุณมีตารางชื่อ "ลูกค้า" โดยมีข้อมูลต่อไปนี้:

SQL WHERE IN – อธิบายด้วยตัวอย่าง

หากต้องการลบแถวออกจากตารางนี้ตามค่าหลายค่าในคอลัมน์ "เมือง" สามารถใช้ส่วนคำสั่ง SQL WHERE IN ร่วมกับคำสั่ง DELETE ดังที่แสดงในแบบสอบถามต่อไปนี้:

DELETE FROM customers
WHERE City IN ('New York', 'Chicago', 'Miami');

คำสั่งนี้จะลบแถวทั้งหมดออกจากตาราง "ลูกค้า" ที่ชื่อคอลัมน์ "เมือง" ตรงกับค่าใดๆ ในรายการ เช่น 'นิวยอร์ก' 'ชิคาโก' 'ไมอามี' ในตัวอย่างด้านบน จะลบแถวที่หนึ่ง สาม และห้าออกจากตาราง

โปรดทราบว่าเมื่อใช้คำสั่งย่อย WHERE IN กับคำสั่ง DELETE คุณควรระวังให้มากเพื่อหลีกเลี่ยงข้อผิดพลาดโดยตรวจสอบให้แน่ใจว่าคุณกำลังลบข้อมูลที่ถูกต้อง วิธีที่ดีที่สุดคือทดสอบการสืบค้นข้อมูลของคุณกับข้อมูลชุดย่อยเล็กๆ ก่อนเรียกใช้ในฐานข้อมูลทั้งหมดของคุณ

  1. การใช้ตัวดำเนินการ WHERE IN และคำสั่ง SQL WHERE เพื่อกรองข้อมูลตามค่าตัวเลข

SELECT *
FROM customers
WHERE age IN (25, 30, 35)
AND city = 'London';

ข้อความค้นหานี้จะส่งคืนแถวทั้งหมดจากตาราง "ลูกค้า" โดยที่คอลัมน์อายุมีค่าตัวเลข 25, 30 หรือ 35 และคอลัมน์เมืองมีค่าเป็น "ลอนดอน"

โปรดทราบว่าตัวดำเนินการ WHERE IN เป็นตัวดำเนินการเชิงตรรกะที่อนุญาตให้คุณระบุค่าหลายค่าสำหรับคอลัมน์เดียวเท่านั้น คำสั่ง SELECT ใช้เพื่อดึงข้อมูลจากตาราง ส่วนคำสั่ง WHERE ใช้เพื่อกรองข้อมูลตามเงื่อนไขเฉพาะ

ในตัวอย่างนี้ ข้อความค้นหาจะส่งคืนแถวจากตาราง "ลูกค้า" โดยที่คอลัมน์อายุตรงกับหนึ่งในค่าตัวเลขที่ระบุ และคอลัมน์เมืองตรงกับค่า "ลอนดอน" ชื่อคอลัมน์ที่ใช้ในข้อความค้นหานี้คือ "อายุ" และ "เมือง" และตารางที่ใช้ค้นหาคือ "ลูกค้า"

  1. การใช้ WHERE IN กับคำสั่ง SELECT และตัวดำเนินการ IN

SELECT *
FROM orders
WHERE customer_id IN (
    SELECT customer_id
    FROM customers
    WHERE country = 'USA'
);

ในตัวอย่างนี้ เรากำลังใช้ข้อความค้นหาย่อยเพื่อดึงรหัสลูกค้าทั้งหมดจากตาราง "ลูกค้า" ซึ่งคอลัมน์ประเทศมีค่าเป็น "USA" จากนั้นเราจะใช้ตัวดำเนินการ WHERE IN เพื่อกรองตาราง "คำสั่งซื้อ" ตามรหัสลูกค้าเหล่านั้น

ข้อความค้นหานี้จะส่งคืนแถวทั้งหมดจากตารางคำสั่งซื้อโดยที่คอลัมน์ customer_id ตรงกับหนึ่งในรหัสลูกค้าที่ส่งคืนโดยข้อความค้นหาย่อย

โปรดจำไว้ว่า ตัวดำเนินการ WHERE IN คือตัวดำเนินการเปรียบเทียบที่ให้คุณเปรียบเทียบคอลัมน์กับรายการค่าต่างๆ ในกรณีนี้ เรากำลังเปรียบเทียบคอลัมน์ customer_id กับรายการรหัสลูกค้าที่ส่งกลับโดยข้อความค้นหาย่อย

เมื่อใช้ตัวดำเนินการนี้และแบบสอบถามย่อย คุณสามารถกรองข้อมูลตามเกณฑ์เฉพาะและดึงเฉพาะข้อมูลที่ตรงกับความต้องการของคุณ

2 ประโยชน์หลักของการใช้ SQL WHERE IN Clause?

  1. ปรับปรุงประสิทธิภาพการค้นหา

ประโยคนี้มีประโยชน์มากที่สุดอย่างหนึ่งในแง่ของประสิทธิภาพการสืบค้น เมื่อกรองข้อมูลตามค่าหลายค่า การใช้ส่วนคำสั่งจะมีประสิทธิภาพและรวดเร็วกว่าการเขียนส่วนคำสั่ง WHERE หลายรายการด้วยตัวดำเนินการ OR นี่เป็นเพราะกลไกจัดการฐานข้อมูลสามารถเพิ่มประสิทธิภาพแผนดำเนินการสืบค้นเพื่อดึงข้อมูลที่จำเป็นได้อย่างมีประสิทธิภาพ

ตัวอย่างเช่น พิจารณาการสืบค้นSQL ต่อไป นี้ด้วยตาราง "ลูกค้า" ซึ่งเรากำลังพยายามระบุรายละเอียดลูกค้าตามประเทศของพวกเขา

SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers WHERE country='USA' 
			OR country='Canada' 
			OR country='Mexico' ;

SQL WHERE IN – อธิบายด้วยตัวอย่าง

 SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers 
WHERE country IN ('USA', 'Canada', 'Mexico'); 

SQL WHERE IN – อธิบายด้วยตัวอย่าง

ดังที่เห็นในตัวอย่างข้างต้น การใช้อนุประโยคสามารถส่งผลให้ประสิทธิภาพการสืบค้นดีขึ้นอย่างมาก และช่วยให้คุณประหยัดเวลามากขึ้น การเลือกประเทศทั้งหมดในคราวเดียวง่ายกว่าการเลือกประเทศแล้วประเทศเล่าโดยใช้ตัวดำเนินการ OR ในชุดข้อมูลที่ใหญ่กว่ามาก

  1. การเขียนแบบสอบถามอย่างง่าย

ประโยชน์หลักอีกประการของการใช้SQ L WHERE IN clause คือสามารถลดความซับซ้อนของกระบวนการเขียนแบบสอบถามที่ซับซ้อน เมื่อคุณต้องการกรองข้อมูลตามค่าหลายค่า การใช้ WHERE clause หลายรายการที่มีตัวดำเนินการ OR อาจทำให้ยุ่งยากและจัดการได้ยาก

การใช้ส่วนคำสั่งทำให้คุณสามารถระบุค่าทั้งหมดที่คุณต้องการกรองในคำสั่งเดียว ทำให้ข้อความค้นหาของคุณอ่านและดูแลรักษาได้ง่ายขึ้น สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อทำงานกับชุดข้อมูลขนาดใหญ่หรือเมื่อคุณต้องการเขียนข้อความค้นหาที่ซับซ้อนโดยมีเงื่อนไขหลายข้อ

ตัวอย่างเช่น พิจารณาแบบสอบถาม SQL ต่อไปนี้:

SELECT *
FROM products 
WHERE category='Electronics' AND (brand='Apple' OR brand='Samsung' OR brand='Sony') 
SELECT *
FROM products 
WHERE category='Electronics' AND brand IN ('Apple', 'Samsung', 'Sony') 

ในทั้งสองข้อความค้นหาจากตัวอย่างด้านบน ข้อความค้นหาจะส่งคืนผลิตภัณฑ์ "อิเล็กทรอนิกส์" ทั้งหมดจาก Apple, Samsung และ Sony

อย่างไรก็ตาม การใช้ส่วนคำสั่ง WHERE IN ดังที่เห็นในแบบสอบถามหลัง สามารถลดความซับซ้อนของกระบวนการใช้แบบสอบถามที่ซับซ้อน และทำให้อ่านและทำความเข้าใจได้ง่ายขึ้น

นอกจากนี้ยังช่วยหลีกเลี่ยงข้อผิดพลาดและทำให้ใช้เวลาน้อยลง

คำพูดสุดท้ายของเรา

ยินดีด้วย! ตอนนี้คุณทราบวิธีใช้คำสั่ง SQL WHERE IN เพื่อกรองข้อมูลตามรายการค่า ให้เราประเมินสิ่งที่เราได้เรียนรู้:

เมื่อใช้ WHERE IN คุณสามารถลดความซับซ้อนของช่วงการสืบค้น SQL และสร้างเพื่อดึงผลลัพธ์ที่เขียนได้อย่างมีประสิทธิภาพมากขึ้น

โปรดจำไว้ว่า WHERE IN เป็นคำย่อสำหรับหลายเงื่อนไข OR ดังนั้นจึงสามารถแทนที่รายการคำสั่ง OR แบบยาวได้ นอกจากนี้ อนุประโยคยังสามารถใช้กับข้อความค้นหาย่อย ทำให้คุณสามารถกรองข้อมูลตามผลลัพธ์ของข้อความค้นหาอื่นได้

เมื่อใช้ WHERE IN สิ่งสำคัญคือต้องพิจารณาประเภทข้อมูลของค่าที่คุณกำลังเปรียบเทียบ หากประเภทข้อมูลไม่ตรงกัน คุณอาจต้องใช้ฟังก์ชันการแปลงประเภทเพื่อให้แน่ใจว่ามีการเปรียบเทียบที่แม่นยำ

โดยรวมแล้ว SQL WHERE IN clause เป็นไวยากรณ์พื้นฐานที่มีประสิทธิภาพสำหรับการกรองข้อมูลในแบบสอบถาม SQL คุณสามารถปรับปรุงประสิทธิภาพและความสามารถในการอ่านโค้ด SQL ของคุณให้เชี่ยวชาญ ทำให้ง่ายต่อการทำงานและบำรุงรักษาในระยะยาว

Leave a Comment

คู่มือการดาวน์โหลดและติดตั้ง R และ RStudio

คู่มือการดาวน์โหลดและติดตั้ง R และ RStudio

ค้นพบวิธีที่เราสามารถดาวน์โหลดและติดตั้ง R และ RStudio ซึ่งเป็นทั้งแบบฟรีและแบบโอเพ่นซอร์สสำหรับการเขียนโปรแกรมสถิติและกราฟิก

วิธีลดขนาดไฟล์ Excel – 6 วิธีที่มีประสิทธิภาพ

วิธีลดขนาดไฟล์ Excel – 6 วิธีที่มีประสิทธิภาพ

วิธีลดขนาดไฟล์ Excel – 6 วิธีที่มีประสิทธิภาพ

Power Automate คืออะไร? - สุดยอดคู่มือ

Power Automate คืออะไร? - สุดยอดคู่มือ

Power Automate คืออะไร? - สุดยอดคู่มือที่ช่วยให้คุณเข้าใจและใช้ได้อย่างมีประสิทธิภาพ

วิธีใช้ Power Query ใน Excel: คู่มือฉบับสมบูรณ์

วิธีใช้ Power Query ใน Excel: คู่มือฉบับสมบูรณ์

วิธีใช้ Power Query ใน Excel: คำแนะนำทั้งหมดเพื่อทำให้ข้อมูลของคุณมีประสิทธิภาพมากขึ้น

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

วิธีบันทึกและโหลดไฟล์ RDS ใน R

วิธีบันทึกและโหลดไฟล์ RDS ใน R

คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ

บทนำในการกรองบริบทใน LuckyTemplates

บทนำในการกรองบริบทใน LuckyTemplates

ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร