0

ここに私のMysqlクエリがあります

    DELIMITER $$

USE `divineproposal_db`$$

DROP PROCEDURE IF EXISTS `pr_Search_Profile`$$

CREATE DEFINER=`root`@`%` PROCEDURE `pr_Search_Profile`(IN vGender CHAR(1),IN vMinAge INT,IN vMaxAge INT,IN vReligion INT)
BEGIN
        SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), cpl_DateofBirth)), "%Y")+0 AS Age FROM tbl_candidateprofile
            WHERE  Age>= vMinAge AND Age<=vMaxAge;
    END$$

DELIMITER ;

エラー ::

Unknown column 'Age' in 'where clause'
4

2 に答える 2

0

このように使用してみてください-

SELECT * FROM tbl_candidateprofile
            WHERE  DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), cpl_DateofBirth)), "%Y")+0>= vMinAge AND DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), cpl_DateofBirth)), "%Y")+0<=vMaxAge;

使用しているものは Mysql では許可されていません

于 2013-01-10T13:00:07.363 に答える
0

句ではエイリアスを使用できないためWHERE、サブクエリを使用するか、定義を再利用する必要がありますage

select Age
from
(
  SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), cpl_DateofBirth)), "%Y")+0 AS Age 
  FROM tbl_candidateprofile
) src
WHERE  Age>= vMinAge 
   AND Age<=vMaxAge;

または:

SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), cpl_DateofBirth)), "%Y")+0 AS Age 
FROM tbl_candidateprofile
WHERE DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), cpl_DateofBirth)), "%Y")+0>= vMinAge 
  AND DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), cpl_DateofBirth)), "%Y")+0<=vMaxAge
于 2013-01-10T12:59:57.003 に答える