BINARY
сравнение
от двата низа се изисква за точно съвпадение
При нормални обстоятелства крайният празен интервал не се разглежда в сравнението, а BINARY
оператор го принуждава да бъде:
mysql> SELECT BINARY ' ' = ' ';
+--------------------+
| BINARY ' ' = ' ' |
+--------------------+
| 0 |
+--------------------+
Между другото, не само сравненията само с интервали са засегнати от проблема с крайния празен интервал:
mysql> SELECT 'abc ' = 'abc';
+------------------+
| 'abc ' = 'abc' |
+------------------+
| 1 |
+------------------+
...но...
mysql> SELECT BINARY 'abc ' = 'abc';
+-------------------------+
| BINARY 'abc ' = 'abc' |
+-------------------------+
| 0 |
+-------------------------+
...и още по-объркващо, водещият празен интервал е значимо:
mysql> SELECT ' abc ' = 'abc';
+-------------------+
| ' abc ' = 'abc' |
+-------------------+
| 0 |
+-------------------+
Относно индексирането:
BINARY
ще предотврати използването на индекс в колоната със знаци. Въпреки това, бележка за документите
предполага, че индексът ще да се използва, ако BINARY
Операторът се прилага към страната на низовия литерал на сравнението, както е в:
SELECT * FROM `tbl` WHERE `col` = BINARY 'string '