sensibilidad - Consulta sensible a mayúsculas de MySQL
quitar acentos consulta mysql (3)
Esto se ha preguntado en este sitio antes, pero no pude encontrar una respuesta suficiente. Si estoy haciendo una consulta como:
Select Seller from Table where Location = ''San Jose''
¿Cómo puedo hacer que devuelva solo Vendedores con la ubicación ''San José'' en lugar de ''san jose'' o alguna otra cosa?
Las consultas MySQL no distinguen entre mayúsculas y minúsculas por defecto. A continuación se muestra una consulta simple que busca ''valor''. Sin embargo, devolverá ''VALUE'', ''value'', ''VaLuE'', etc.
SELECT * FROM `table` WHERE `column` = ''value''
La buena noticia es que si necesita realizar una consulta que distinga entre mayúsculas y minúsculas, es muy fácil hacerlo con el operador BINARY
, que fuerza una comparación byte a byte:
SELECT * FROM `table` WHERE BINARY `column` = ''value''
Para mejorar la excelente respuesta de James:
Es mejor poner BINARY
frente a la constante en su lugar:
SELECT * FROM `table` WHERE `column` = BINARY ''value''
Colocar BINARY
delante de la column
evitará el uso de cualquier índice en esa columna.
Si bien la respuesta enumerada es correcta, le sugiero que, si su columna debe contener cadenas sensibles a mayúsculas y minúsculas, lea la documentación y modifique la definición de la tabla en consecuencia.
En mi caso, esto equivalía a definir mi columna como:
`tag` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT ''''
En mi opinión, esto es preferencial para ajustar sus consultas.