Website-Suche

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)

Verwandte Artikel: