Warum wird das Schlüsselwort BINARY mit dem MySQL REGEXP-Operator verwendet?
Verwenden Sie das Schlüsselwort BINARY, um zu erzwingen, dass REGEXP die Zeichenfolge als Binärzeichenfolge abgleicht. Wir werden den Unterschied hier sehen.
Erstellen wir zunächst eine Tabelle:
mysql> create table DemoTable
-> (
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.46 sec)
Fügen Sie mit dem Befehl „Einfügen“ einige Datensätze in die Tabelle ein. Wir haben hier Namen mit unterschiedlichen Fällen:
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)
Zeigen Sie alle Datensätze aus der Tabelle mit der Select-Anweisung an:
mysql> select *from DemoTable;
Ausgabe
Dadurch wird die folgende Ausgabe erzeugt:
+------+
| Name |
+------+
| John |
| JOHN |
| john |
| JOhn |
+------+
4 rows in set (0.00 sec)
Hier ist die Abfrage, um den Unterschied zwischen REGEXP und dem REGEXP-Operator mit BINARY zu erfahren:
mysql> select Name REGEXP 'JOHN' AS ResultWithOutBinary, Name REGEXP BINARY 'JOHN' AS ResultWithBinary from DemoTable;
Ausgabe
Dadurch wird die folgende Ausgabe erzeugt:
+---------------------+------------------+
| ResultWithOutBinary | ResultWithBinary |
+---------------------+------------------+
| 1 | 0 |
| 1 | 1 |
| 1 | 0 |
| 1 | 0 |
+---------------------+------------------+
4 rows in set (0.04 sec)