Toán tử XOR trong MySQL trả về TRUE nếu một trong hai toán hạng (hoặc biểu thức) là TRUE nhưng không phải cả hai. Mệnh đề IN được dùng để chỉ định điều kiện với bất kỳ truy vấn MySQL nào.
Tạo bảng demo
mysql> create table DemoTable (
-> Num1 int,
-> Num2 int
-> );
Query OK, 0 rows affected (0.61 sec)
Chèn dữ liệu mẫu
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)
Hiển thị tất cả bản ghi
mysql> select * from DemoTable;
Kết quả
+------+------+ | Num1 | Num2 | +------+------+ | 5 | 5 | | 6 | 6 | | 7 | 7 | +------+------+ 3 rows in set (0.00 sec)
Truy vấn XOR với IN trong MySQL
mysql> select Num1, Num2 from DemoTable where (Num1 IN (5,6,7) XOR Num2 IN (16, 16, 16));
Kết quả
+------+------+ | Num1 | Num2 | +------+------+ | 5 | 5 | | 6 | 6 | | 7 | 7 | +------+------+ 3 rows in set (0.00 sec)
Giải thích: Vì Num2 không bao giờ nằm trong tập (16,16,16), nên điều kiện XOR luôn trả về TRUE cho các hàng mà Num1 nằm trong (5,6,7).