BINARY
perbandingan
dari dua string diperlukan untuk kecocokan yang tepat
Dalam keadaan normal, spasi spasi tambahan tidak dianggap dalam perbandingan, tetapi BINARY
operator memaksanya menjadi:
mysql> SELECT BINARY ' ' = ' ';
+--------------------+
| BINARY ' ' = ' ' |
+--------------------+
| 0 |
+--------------------+
Kebetulan, bukan hanya perbandingan spasi saja yang terpengaruh oleh masalah spasi putih tambahan:
mysql> SELECT 'abc ' = 'abc';
+------------------+
| 'abc ' = 'abc' |
+------------------+
| 1 |
+------------------+
...tapi...
mysql> SELECT BINARY 'abc ' = 'abc';
+-------------------------+
| BINARY 'abc ' = 'abc' |
+-------------------------+
| 0 |
+-------------------------+
...dan yang lebih membingungkan lagi, spasi putih di depan adalah signifikan:
mysql> SELECT ' abc ' = 'abc';
+-------------------+
| ' abc ' = 'abc' |
+-------------------+
| 0 |
+-------------------+
Mengenai pengindeksan:
BINARY
akan mencegah indeks digunakan pada kolom karakter. Namun, catatan di dokumen
menunjukkan bahwa indeks akan digunakan jika BINARY
operator diterapkan ke sisi literal string dari perbandingan seperti pada:
SELECT * FROM `tbl` WHERE `col` = BINARY 'string '