无法使用' where'使用' timestampdiff'在mySQL中

时间:2018-01-22 20:12:16

标签: mysql

我正在尝试执行以下功能。

B

我正在制作这个错误:

  

(_ mysql_exceptions.OperationalError)(1054,"未知列'持续时间'在' where子句'")[SQL:' SELECT Dog_Guid, start_time,end_time,TIMESTAMPDIFF(MINUTE,start_time,end_time)AS Duration \ n from exam_answers \ n其他持续时间> 0 \ norder by duration desc \ nlimit 10']

这是因为我无法在别名上使用%%sql SELECT Dog_Guid, start_time, end_time, TIMESTAMPDIFF(MINUTE, start_time, end_time) AS Duration from exam_answers where Duration > 0 order by duration desc limit 10 ,还是因为我无法在派生列上使用where?我不知道我在这里做错了什么。我想要做的只是输出where的所有列都更大(列也有空值,因此......)。

1 个答案:

答案 0 :(得分:1)

您不能在where子句

中使用别名
SELECT Dog_Guid, start_time, end_time, TIMESTAMPDIFF(MINUTE, start_time, end_time) AS Duration
from exam_answers
 where TIMESTAMPDIFF(MINUTE, start_time, end_time) > 0
 order by duration desc
 limit 10

之前处理where子句而不是select子句..所以在处理别名的那一刻不知道

有关详细信息,请参阅手册“Problems with Column Aliases”。