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

Usar alias en un where

Estas en el tema de Usar alias en un where en el foro de Mysql en Foros del Web. Hola, que tal? Una duda en una consulta, haber si me ayudan a resolverla... Tengo una tabla con un campo que tiene fecha de nacimiento, ...
  #1 (permalink)  
Antiguo 22/10/2009, 20:01
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Usar alias en un where

Hola, que tal?

Una duda en una consulta, haber si me ayudan a resolverla...

Tengo una tabla con un campo que tiene fecha de nacimiento, llamémosla "users":

USERS

id_user (int)
users_fullname (varchar)
users_edad (date)


Ahora bien, resulta que tengo que traer los registros de las personas que tengan entre 18 y 25 años. Y esa es mi duda, logro traer la edad, pero no sé como hacer para decirle a mysql que me traiga los usurios entre esos años .

Esto es lo que llevo:

Código mysql:
Ver original
  1. SELECT users_fullname, users_edad, (YEAR(CURRENT_DATE) - YEAR(users_edad)) - (RIGHT(CURRENT_DATE,5) < RIGHT(users_edad,5)) AS edad FROM ew_users

Me arroja registros como estos:

Código:
Alguien - 1976-02-24 - 33
Alguien mas - 1983-12-22 - 25
Otro alguien - 1984-10-20 - 25
Sería fácil si mysql permitiera usar el alias "edad" en el where pero no lo permite, yo había pensado hacerlo así (complementando):

Código mysql:
Ver original
  1. SELECT users_fullname, users_edad, (YEAR(CURRENT_DATE) - YEAR(users_edad)) - (RIGHT(CURRENT_DATE,5) < RIGHT(users_edad,5)) AS edad FROM ew_users WHERE edad betwwen 18 and 25;

Pero no, mysql no permite hacer eso...

Cómo puedo usar el alias dentro del where? o de qué manera puedo usar las edades calculadas en la consulta?

Disculpen lo extenso, quería ser claro

Gracias de antemano


Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 22/10/2009, 20:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Usar alias en un where

Puedes usar HAVING:
Código MySQL:
Ver original
  1. SELECT users_fullname, users_edad, (YEAR(CURRENT_DATE) - YEAR(users_edad)) - (RIGHT(CURRENT_DATE,5) < RIGHT(users_edad,5)) AS edad FROM ew_users HAVING edad BETWEEN 18 AND 25;
Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 22/10/2009, 23:00
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Usar alias en un where



Gracias parsero!


Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 19:02.