2012-12-11 47 views

回答

6

添加WHERE条件。 您不能在条款上使用ALIAS

SELECT IF(TIMESTAMPDIFF(HOUR,users_codes.timestam,CURRENT_TIMESTAMP()) < 48,'no','yes') AS Expired 
FROM users_codes 
WHERE IF(TIMESTAMPDIFF(HOUR,users_codes.timestam,CURRENT_TIMESTAMP()) < 48,'no','yes') = 'no' 

或使用子查询

SELECT * 
FROM 
(
    SELECT IF(TIMESTAMPDIFF(HOUR,users_codes.timestam,CURRENT_TIMESTAMP()) < 48,'no','yes') AS Expired 
    FROM users_codes 
) s 
WHERE Expired = 'no' 
2

我相信你可以做这样的事情

SELECT IF(TIMESTAMPDIFF(
    HOUR, 
    users_codes.timestam, 
    CURRENT_TIMESTAMP() 
) < 48, 'no', 'yes') AS Expired 

FROM users_codes 
HAVING Expired = 'no'; 
+0

好这个工作,但在'只有mysql'。因为如果没有'GROUP BY'子句,你不能使用'HAVING'。 –