Contamos con tu ayuda para extender nuestras reseñas referente a las ciencias de la computación.
Solución:
La buena noticia es que si necesita hacer una consulta que distinga entre mayúsculas y minúsculas, es muy fácil de hacer:
SELECT * FROM `table` WHERE BINARY `column` = 'value'
http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
El conjunto de caracteres y la intercalación predeterminados son latin1 y latin1_swedish_ci, por lo que no son binarios. string las comparaciones no distinguen entre mayúsculas y minúsculas de forma predeterminada. Esto significa que si busca con col_name LIKE ‘a%’, obtiene todos los valores de columna que comienzan con A o a. Para que esta búsqueda distinga entre mayúsculas y minúsculas, asegúrese de que uno de los operandos tenga una intercalación binaria o que distinga entre mayúsculas y minúsculas. Por ejemplo, si está comparando una columna y una string que ambos tienen el conjunto de caracteres latin1, puede usar el operador COLLATE para hacer que cualquiera de los operandos tenga la intercalación latin1_general_cs o latin1_bin:
col_name COLLATE latin1_general_cs LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_general_cs
col_name COLLATE latin1_bin LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_bin
Si desea que una columna siempre se trate con distinción entre mayúsculas y minúsculas, declárela con una intercalación binaria o que distinga entre mayúsculas y minúsculas.
La respuesta publicada por Craig White tiene una gran penalización de rendimiento.
SELECT * FROM `table` WHERE BINARY `column` = 'value'
porque no usa índices. Por lo tanto, debe cambiar la clasificación de la tabla como se menciona aquí https://dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html.
O
La solución más fácil, debe usar un BINARIO de valor.
SELECT * FROM `table` WHERE `column` = BINARY 'value'
P.ej
mysql> EXPLAIN SELECT * FROM temp1 WHERE BINARY col1 = "ABC" AND col2 = "DEF" ;
+----+-------------+--------+------+---------------+------+---------+------+--------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+------+---------------+------+---------+------+--------+-------------+
| 1 | SIMPLE | temp1 | ALL | NULL | NULL | NULL | NULL | 190543 | Using where |
+----+-------------+--------+------+---------------+------+---------+------+--------+-------------+
contra
mysql> EXPLAIN SELECT * FROM temp1 WHERE col1 = BINARY "ABC" AND col2 = "DEF" ;
+----+-------------+-------+-------+---------------+---------------+---------+------+------+------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+---------------+---------+------+------+------------------------------------+
| 1 | SIMPLE | temp1 | range | col1_2e9e898e | col1_2e9e898e | 93 | NULL | 2 | Using index condition; Using where |
+----+-------------+-------+-------+---------------+---------------+---------+------+------+------------------------------------+
enter code here
1 fila en conjunto (0.00 seg)
Al final de todo puedes encontrar los informes de otros usuarios, tú asimismo tienes la opción de dejar el tuyo si dominas el tema.