ตัวดำเนินการ XOR ใน MySQL จะคืนค่า TRUE เมื่ออีกตัวหนึ่งของสองตัวเงื่อนไข (หรือนิพจน์) เป็น TRUE แต่ไม่ใช่ทั้งคู่ ในขณะที่เงื่อนไข IN ใช้ระบุเงื่อนไขพร้อมกับคำสั่ง MySQL อื่นๆ
สร้างตารางตัวอย่าง
mysql> create table DemoTable (
-> Num1 int,
-> Num2 int
-> );
Query OK, 0 rows affected (0.61 sec)
เพิ่มข้อมูลตัวอย่าง
mysql> insert into DemoTable values(5,5); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(6,6); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(7,7); Query OK, 1 row affected (0.15 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
ผลลัพธ์
+------+------+ | Num1 | Num2 | +------+------+ | 5 | 5 | | 6 | 6 | | 7 | 7 | +------+------+ 3 rows in set (0.00 sec)
คำสั่งสำหรับ XOR ร่วมกับ IN ใน MySQL
mysql> select Num1, Num2 from DemoTable where (Num1 IN (5,6,7) XOR Num2 IN (16, 16, 16));
ผลลัพธ์
+------+------+ | Num1 | Num2 | +------+------+ | 5 | 5 | | 6 | 6 | | 7 | 7 | +------+------+ 3 rows in set (0.00 sec)
คำอธิบาย: เนื่องจาก Num2 ไม่มีค่าใดอยู่ในชุด (16,16,16) ทำให้เงื่อนไขขวาเป็น FALSE ส่วน Num1 มีค่าอยู่ในชุด (5,6,7) ทำให้เงื่อนไขซ้ายเป็น TRUE ดังนั้น XOR จึงคืนค่า TRUE สำหรับทุกแถว