Distinguir minúsculas y mayúsculas en un select mysql

Soy Diana de Cúcuta Colombia

Programo MYSQL y Visual Foxpro

Hoy me encuentro que no se como comparar una cadena de caracteres ya que si uso where nombre = V1 y v1= pedro y este esta en el sistema como Pedro el sistemas me lo muestra sin importar que el otro este en minúscula o todo en mayúscula.

Me puedes ayudar con eso.

1 Respuesta

Respuesta
1

Para lograr comparaciones sensibles a mayúsculas en MySQL hay dos formas, por lo menos.

Una tiene que ver con la definición de cada columna al crear la tabla. En este caso, "nombre" se debería haber definido con un COLLATE igual a latin1_bin o utf8_bin.
Esto es útil para que SIEMPRE esa columna y las operaciones sobre ella sean sensibles a mayúsculas.
Ejemplo:

CREATE TABLE miembros(
nombre varchar(60) COLLATE latin1_bin,
id int(8)
) ;

La otra forma es incluir la palabra BINARY en cada consulta, de acuerdo a como lo indica la sintaxis de cada comando.

Ejemplo:

SELECT * FROM miembros WHERE BINARY nombre = v1;

SELECT * FROM miembros WHERE nombre LIKE BINARY "p%";

Esto es independiente de cómo esté definida la columna, pero tiene la desventaja de que no debes olvidar la palabra BINARY si quieres que funcione. Pero es útil si quieres que la sensibilidad a mayúsculas sea optativa (en unos casos sí, y no en otros).

Estoy casi seguro de que esto solucionará tu problema, de lo contrario me vuelves a escribir.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas