sql >> Databasteknik >  >> RDS >> Mysql

mysql AS-klausul

Ett sätt att göra detta är att linda den ursprungliga frågan som en underfråga och flytta WHERE klausul till den yttre frågan:

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

förtydligande:detta fungerar i MySQL 5

notera:detta förutsätter att den ursprungliga frågan fungerar



  1. ändra datumformat från char

  2. MySql kopieringsvärde från en rad till en annan

  3. Välj mellan datumintervall och specifikt tidsintervall

  4. En annan mysqld-server som körs på port 3306-fel