Volver a la página principal
lunes 30 septiembre 2024
11

Cómo hacer una consulta case sensitive en MySQL

Uso de *BINARY* en las consultas

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.

Comparación con 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.

Algunos ejemplos

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;

Referencia oficial

Para más detalles, puedes consultar la documentación oficial de MySQL sobre colaciones.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer