如何获得 mysql 列的计算输出?

How to get a calculated output as mysql column?

我需要使用 mysql 查询进行计算。

这是我的查询。

SELECT  book_name, 
CASE WHEN  CURDATE()<book_return THEN 0 ELSE DATEDIFF(CURDATE(),book_return) END AS DateDifference,
CASE WHEN  DateDifference>0 THEN DateDifference*10 ELSE NULL) END AS TotalFines  FROM tblIssuedBooks order by lastupdated DESC

如果 DateDIfference 值大于 zero.but,我需要将 DateDifference 列乘以 10,当我执行此操作时,我得到 Unknown column 'DateDifference' in 'field list' 作为错误。

有人可以告诉我如何改进吗?

您不能在 select 中重复使用同一个 select 中定义的别名。这里的一种解决方法是使用子查询:

SELECT book_name, DateDifference,
       CASE WHEN DateDifference > 0 THEN DateDifference*10 END AS TotalFines
FROM
(
    SELECT *, CASE WHEN CURDATE() < book_return
                   THEN 0
                   ELSE DATEDIFF(CURDATE(), book_return) END AS DateDifference
    FROM tblIssuedBooks
) t
ORDER BY lastupdated DESC;