繁体   English   中英

*在SELECT语句mySQL中如何做*和计算?

[英]How to do * and a calculation in SELECT statement mySQL?

我正在尝试执行以下mySQL查询:

SELECT 
    SQL_CALC_FOUND_ROWS, 
    TIMESTAMPDIFF(DAY, date_identified, 
    IFNULL(date_closed, 
    CURDATE())) as days_open, 
    * 
FROM (`risks`) 
ORDER BY `WBS` ASC LIMIT 10

但我一直出错。 但是,如果我删除SQL_CALC_FOUND_ROWS*而改为:

SELECT 
    id, TIMESTAMPDIFF(DAY, date_identified, 
    IFNULL(date_closed, 
    CURDATE())) as days_open 
FROM (`risks`) 
ORDER BY `WBS` ASC LIMIT 10 

然后查询成功执行。 有什么办法可以更改此查询以包含SQL_CALC_FOUND_ROWS*

sql_calc_found_rows是指令,而不是字段,您不要在其后加逗号:

SELECT SQL_CALC_FOUND ROWS field1, field2, calc1, calc2, etc...
                          ^--- no comma

类似于INSERT IGNORE忽略是指令,而不是字段。

我可以想到的最简单的方法是在*之前包括行源名称(或别名):

SELECT SQL_CALC_FOUND_ROWS
    TIMESTAMPDIFF(DAY, date_identified, IFNULL(date_closed, CURDATE())) as days_open, 
    `risks`.* 
FROM 
    (`risks`) 
ORDER BY 
    `WBS` ASC 
LIMIT 10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM