La forma más sencilla de hacer una consulta *case sensitive* en MySQL es utilizando el operador BINARY
. Este operador convierte la cadena en una representación binaria, haciendo que se distinga entre mayúsculas y minúsculas.
Por ejemplo:
SELECT * FROM usuarios WHERE BINARY nombre = 'Juan';
En esta consulta, solo se seleccionarán las filas en las que el valor de nombre
sea exactamente Juan
(con mayúscula inicial), excluyendo otras variantes como juan
o JUAN
.
COLLATE
Otra forma de hacer consultas *case sensitive* es usando el modificador COLLATE
, que permite especificar un conjunto de reglas de colación específicas. Para establecer la colación *case sensitive*, se usa el sufijo _cs
(case-sensitive) en la colación:
SELECT * FROM usuarios WHERE nombre COLLATE utf8mb4_bin = 'Juan';
En este ejemplo, la colación utf8mb4_bin
hace que la comparación se realice considerando la distinción entre mayúsculas y minúsculas.
1. Buscar con el operador BINARY:
SELECT * FROM productos WHERE BINARY nombre = 'ProductoA';
2. Comparar usando COLLATE
:
SELECT * FROM clientes WHERE correo COLLATE latin1_general_cs = 'Email@Ejemplo.com';
3. Usar colación global:
Si se necesita aplicar la distinción *case sensitive* a nivel de toda la base de datos o tabla, se puede cambiar la colación predeterminada con:
ALTER TABLE usuarios CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Para más detalles, puedes consultar la documentación oficial de MySQL sobre colaciones.
Jorge García
Fullstack developer