Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ayuda con query

Estas en el tema de Ayuda con query en el foro de Mysql en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT cal_login , CONCAT ( cal_lastname , ' ' , cal_firstname ) AS cal_nombre           ...
  #1 (permalink)  
Antiguo 28/02/2011, 16:01
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Ayuda con query

Código MySQL:
Ver original
  1. SELECT cal_login, CONCAT(cal_lastname, ' ',cal_firstname) AS cal_nombre
  2.             FROM webcal_user
  3.             WHERE cal_enabled = 'Y'
  4.             HAVING cal_nombre LIKE '%tre%'
  5.             LIMIT 10

Quiero traer todos los usuarios que su nombre comienzen con los caracteres deseados y su estado sea Y (YES), pero mi problema esta justamente ahi, que aunque le ponga Y igual trae a los que tienen N
  #2 (permalink)  
Antiguo 28/02/2011, 16:06
Avatar de danideu  
Fecha de Ingreso: febrero-2005
Ubicación: Barcelona
Mensajes: 213
Antigüedad: 19 años, 2 meses
Puntos: 5
Respuesta: Ayuda con query

La verdad es que si lo que quieres es que te salgan los usuarios que su nombre comiencen con caracteres deseados y estado YES, yo solo haria lo siguiente:

SELECT tu_campo1, tu_campo2, tu_campoN
from tabla
where cal_enabled = 'Y'
and cal_nombre LIKE 'tre%'

Ten en cuenta que si lo que quieres es que empiecen con ese nombre, tienes que quitar el tanto por ciento en el inicio, asi podras seleccionar los nombres que empiecen por 'TRE'.

No se si es exactamente esto lo que buscabas. Porque la consulta que has puesto me parece demasiado para lo que quieres.

Saludos.
  #3 (permalink)  
Antiguo 28/02/2011, 16:17
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Ayuda con query

es que en realidad es un buscador y ese TRE de ahi en realidad podria ser Raul COrnejo, Miguel Perez, Luis, etc etc nombres con apellidos sino que lo deje TRE porque tava haciendo pruebas y copy-paste y eso vieron, todo es necesario por eso quiero hacer bien la consulta usando el having y ver si puedo anadir Where para que traiga los usuarios con estado "Y"
  #4 (permalink)  
Antiguo 01/03/2011, 08:52
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Ayuda con query

nadie tiene idea de como hacerlo?
  #5 (permalink)  
Antiguo 01/03/2011, 08:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda con query

Pero no entiendo para que requieres el having.

la consulta que te dió dsanideu no te funcionó?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 01/03/2011, 09:46
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Ayuda con query

lo que pasa que las variables creadas en el query, en este caso cree una llamada cal_nombre solo es reconocida por HAVING, where no la reconoce y es por eso que uso having
  #7 (permalink)  
Antiguo 01/03/2011, 10:24
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Ayuda con query

Hola HiToGoRoShi:

Si la sección WHERE no te reconoce los campos calculados que generas en el SELECT lo que tienes que hacer es VOLVER A CALCULARLOS en el WHERE, no hay necesidad de hacerlo en el HAVING:

Código MySQL:
Ver original
  1. SELECT (Campo1 + Campo2 * Lo_que_sea) as Campo_Calculado
  2. FROM tabla
  3. (Campo1 + Campo2 * Lo_que_sea) > 0
  4. --Para poder utilizarlo en el WHERE TIENES QUE CALCULARLO NUEVAMENTE.

a partir de la solución que te dio dsanideu quedaría así:

Colocando el campo calculado:

Código MySQL:
Ver original
  1. SELECT tu_campo1, tu_campo2, tu_campoN
  2. FROM tabla
  3. WHERE cal_enabled = 'Y' and
  4. CONCAT(cal_lastname, ' ',cal_firstname) LIKE '%tre%'


Saludos
Leo.
  #8 (permalink)  
Antiguo 01/03/2011, 10:36
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda con query

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola HiToGoRoShi:

Si la sección WHERE no te reconoce los campos calculados que generas en el SELECT lo que tienes que hacer es VOLVER A CALCULARLOS en el WHERE, no hay necesidad de hacerlo en el HAVING:

Código MySQL:
Ver original
  1. SELECT (Campo1 + Campo2 * Lo_que_sea) as Campo_Calculado
  2. FROM tabla
  3. (Campo1 + Campo2 * Lo_que_sea) > 0
  4. --Para poder utilizarlo en el WHERE TIENES QUE CALCULARLO NUEVAMENTE.

a partir de la solución que te dio dsanideu quedaría así:

Colocando el campo calculado:

Código MySQL:
Ver original
  1. SELECT tu_campo1, tu_campo2, tu_campoN
  2. FROM tabla
  3. WHERE cal_enabled = 'Y' and
  4. CONCAT(cal_lastname, ' ',cal_firstname) LIKE '%tre%'


Saludos
Leo.
exacto..
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: query
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:40.