为什么BINARY关键字与MySQL REGEXP运算符一起使用?

使用BINARY关键字强制REGEXP将字符串作为二进制字符串进行匹配。我们将在这里看到区别。

让我们首先创建一个表-

mysql> create table DemoTable
-> (
-> Name varchar(100)
-> );

使用insert命令在表中插入一些记录。我们在这里有不同情况的名字-

mysql> insert into DemoTable values('John');

mysql> insert into DemoTable values('JOHN');

mysql> insert into DemoTable values('john');

mysql> insert into DemoTable values('JOhn');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable;

输出结果

这将产生以下输出-

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

这是查询以了解BINARY与REGEXP和REGEXP运算符之间的区别-

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

输出结果

这将产生以下输出-

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