Computer >> Máy Tính >  >> Lập trình >> MySQL

Tại sao từ khóa BINARY được sử dụng với toán tử MySQL REGEXP?


Sử dụng từ khóa BINARY để buộc REGEXP đối sánh chuỗi dưới dạng chuỗi nhị phân. Chúng ta sẽ thấy sự khác biệt ở đây.

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
-> (
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.46 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Chúng tôi có tên ở đây với các trường hợp khác nhau -

mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable values('JOHN');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values('john');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('JOhn');
Query OK, 1 row affected (0.17 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Đầu ra

Điều này sẽ tạo ra kết quả sau -

+------+
| Name |
+------+
| John |
| JOHN |
| john |
| JOhn |
+------+
4 rows in set (0.00 sec)

Đây là truy vấn để tìm hiểu sự khác biệt giữa toán tử REGEXP và REGEXP với BINARY -

mysql> select Name REGEXP 'JOHN' AS ResultWithOutBinary, Name REGEXP BINARY 'JOHN' AS ResultWithBinary from DemoTable;

Đầu ra

Điều này sẽ tạo ra kết quả sau -

+---------------------+------------------+
| ResultWithOutBinary | ResultWithBinary |
+---------------------+------------------+
| 1                   | 0                |
| 1                   | 1                |
| 1                   | 0                |
| 1                   | 0                |
+---------------------+------------------+
4 rows in set (0.04 sec)