Cita:
Iniciado por gragus
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