Een BINARY
vergelijking
van de twee strings is vereist voor een exacte overeenkomst
Onder normale omstandigheden wordt witruimte niet meegenomen in de vergelijking, maar de BINARY
operator dwingt het te zijn:
mysql> SELECT BINARY ' ' = ' ';
+--------------------+
| BINARY ' ' = ' ' |
+--------------------+
| 0 |
+--------------------+
Overigens zijn het niet alleen witruimtevergelijkingen die worden beïnvloed door het probleem met de achterblijvende witruimte:
mysql> SELECT 'abc ' = 'abc';
+------------------+
| 'abc ' = 'abc' |
+------------------+
| 1 |
+------------------+
...maar...
mysql> SELECT BINARY 'abc ' = 'abc';
+-------------------------+
| BINARY 'abc ' = 'abc' |
+-------------------------+
| 0 |
+-------------------------+
...en nog verwarrender, leidende witruimte is significant:
mysql> SELECT ' abc ' = 'abc';
+-------------------+
| ' abc ' = 'abc' |
+-------------------+
| 0 |
+-------------------+
Over indexering:
BINARY
voorkomt dat een index wordt gebruikt in de tekenkolom. Echter, een opmerking over de documenten
suggereert dat de index zal worden gebruikt als de BINARY
operator wordt toegepast op de letterlijke tekenreekszijde van de vergelijking zoals in:
SELECT * FROM `tbl` WHERE `col` = BINARY 'string '