Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/02/2007, 14:10
Avatar de Developer9
Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 11 meses
Puntos: 47
Re: Diferencia entre LIKE y =

Cita:
Iniciado por gragus Ver Mensaje
Hola gente del web, tengo un problema con una consulta. Tengo una BD en SQL q tiene una tabla Tusuarios q contiene usuarios suscriptos con nombre de usuario y password correspondiente para poder acceder a una pagina. La consulta q realizo para saber si el usuario es correcto es la sgte:

Código:
consulta = "SELECT usuario, password FROM Tusuario WHERE usuario LIKE '%"&fusuario&"%' AND password LIKE '%"&fpass&"%'"
Si hago la comparación con LIKE no me devuelve sólo el usuario q coincide sino q devuelve todos los usuario q tienen datos semejantes, por ej. si tengo dos usuario con nombre gra y gragus y password 00 y 000, cuando intenta ingresar gra la consulta me devuelve los dos. Yo tenía entendido q si hago la consulta con = entonces si me iba a devolver sólo el usuario q coincidiera exactamente, pero al intentarlo el resultado es el mismo q con LIKE.

Entonces mi duda es la sgte., hay alguna forma de q la consulta me devuelva sólo el registro coincidente y no todos los q se parezcan??? Realmente hay diferencia entre LIKE y = o son lo mismo???

Saludos y gracias por su atención.

Hola... según lo que expones puedo suponer que el caracter '&' lo usas para concatenar strings. Tu sentencia resultante quedaría mas o menos así:

SELECT usuario, password FROM Tusuario WHERE usuario LIKE '%fusuario%' AND password LIKE '%fpass%'

Y es fácil de descifrar que el like te devuelva mas de un registro ya que estás utilizando el caracter '%' al inicio y al final del criterio de búsqueda.

Según los registros que describes, si tu query es:

SELECT usuario, password FROM Tusuario WHERE usuario='fusuario' AND password LIKE='fpass'

no produjera el mismo efecto. Asegurate de ejecutar el query correctamente