กล่าวโดยย่อคือ สำหรับค่าบูลีนสองค่า ตัวดำเนินการ XOR จะคืนค่าเป็นจริงหากค่าต่างกัน มันง่ายมาก
- XOR จริง ส่งกลับเท็จ จริง
- เท็จ
- จริง XOR จริงส่งคืนเท็จ
เรามาสำรวจว่าตัวดำเนินการ XOR ใน SQL ทำอะไรได้บ้าง และเราจะใช้งานมันได้อย่างไร เพื่อจุดประสงค์ในการสาธิต เราใช้ MySQL เป็นระบบฐานข้อมูลพื้นฐาน
ตัวดำเนินการ SQL XOR
ใน SQL ตัวดำเนินการ XOR ช่วยให้เราสามารถดำเนินการ XOR แบบลอจิคัลระหว่างสองนิพจน์บูลีนได้
เช่นเดียวกับการดำเนินการ XOR ใดๆ ตัวดำเนินการจะคืนค่าบูลีนจริง หากนิพจน์ใดนิพจน์หนึ่งเป็นจริง และส่งคืนค่าบูลีนเป็นเท็จ หากไม่เป็นเช่นนั้น
MySQL รองรับตัวดำเนินการ XOR ซึ่งช่วยให้เราสามารถเขียนคำสั่งเงื่อนไขที่ซับซ้อนตามตรรกะนี้
ไวยากรณ์พื้นฐานมีดังนี้:
นิพจน์ 1 XOR นิพจน์ 2ให้เราสำรวจการใช้งานพื้นฐานของฟังก์ชันนี้
การใช้งานขั้นพื้นฐาน
พิจารณาตัวอย่างต่อไปนี้ที่แสดงให้เห็นว่าตัวดำเนินการ XOR ทำงานอย่างไรใน MySQL เมื่อประเมินนิพจน์บูลีนสองนิพจน์:
เลือก 1 x หรือ 1 เป็นความละเอียด;ในกรณีนี้ MySQL ถือว่า 1 เป็นจริงและ 0 เป็นเท็จ ดังนั้น เนื่องจากทั้งสองนิพจน์เป็นจริง ตัวดำเนินการจึงคืนค่าเท็จดังนี้
ความละเอียด|---+
0|
ฟังก์ชันการทำงานของตัวดำเนินการจะยังคงอยู่เมื่อหนึ่งในนิพจน์หรือตัวถูกดำเนินการเป็นจริง ตัวอย่างมีดังนี้:
เลือก 1 x หรือ 0 เป็นความละเอียด;ในกรณีนี้ เนื่องจากมีเพียงค่าเดียวเท่านั้นที่เป็นจริง ตัวดำเนินการจึงคืนค่าจริงดังนี้:
ความละเอียด|---+
1|
การใช้งานขั้นสูง
ให้เราดูตัวอย่างการใช้งานขั้นสูงของตัวดำเนินการ XOR โดยใช้ตารางฐานข้อมูล สำหรับอันนี้ เราใช้ตาราง “ลูกค้า” จากฐานข้อมูลตัวอย่าง Sakila
สมมติว่าเราต้องการดึงรายชื่อลูกค้าที่เป็นสมาชิกที่ใช้งานอยู่หรือไม่ได้ใช้งาน แต่ไม่ใช่ทั้งคู่จากตารางลูกค้า
ในกรณีนี้ สถานะใช้งานอยู่จะแสดงด้วย 1 และสถานะไม่ทำงานแสดงด้วยค่า 0
เราสามารถใช้สิ่งนี้ร่วมกับตัวดำเนินการ XOR เพื่อให้บรรลุเป้าหมายนี้ได้ พิจารณาแบบสอบถามตัวอย่างต่อไปนี้:
เลือก customer_id, first_name, อีเมล, ใช้งานอยู่จากลูกค้า
โดยที่ (XOR ที่ใช้งานอยู่ ไม่ทำงาน) = 1 ขีดจำกัด 3;
สิ่งนี้ควรส่งคืนบันทึกที่ตรงกันดังนี้:
ได้แล้ว!
บทสรุป
ในบทช่วยสอนนี้ เราได้เรียนรู้วิธีการทำงานและใช้ตัวดำเนินการ XOR ใน SQL โดยครอบคลุมฟังก์ชันและการใช้งานต่างๆ นอกจากนี้เรายังดูวิธีที่เราสามารถนำมาใช้ในตารางฐานข้อมูลเพื่อกรองบันทึกเฉพาะได้อีกด้วย