sql >> Database >  >> RDS >> Mysql

mysql AS-clausule

Een manier om dit te doen is door de oorspronkelijke query als een subquery in te pakken en de WHERE te verplaatsen clausule aan de buitenste vraag:

SELECT * FROM (
  SELECT `candidates`.`candidate_id`, -- this is the original query
     `candidates`.`first_name`, 
     `candidates`.`surname`, 
     `candidates`.`DOB`, 
     `candidates`.`gender`, 
     DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) AS `age` 
  FROM `candidates` ) as innertable
WHERE `age` <= 20  -- this is now part of the outer query

verduidelijking:dit werkt WEL in MySQL 5

opmerking:dit veronderstelt dat de oorspronkelijke zoekopdracht werkt



  1. MySQL streepjes toevoegen aan UUID in een tabel

  2. Records in de juiste volgorde retourneren in PostgreSQL

  3. MySQL:relatieve secondentelling converteren naar datetime?

  4. Oracle 11g ado-verbindingsreeksen voor ODBC (niet OLEDB) met Excel VBA 64 bit (DSN Less en tnsnames)