Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Toán tử XOR trong MySQL với mệnh đề IN?

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).