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

标签 php mysql sql

我正在尝试执行以下 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 - ignore 是一个指令,而不是一个字段。

关于php - 如何在 SELECT 语句 mySQL 中做 * 和计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21027809/

相关文章:

mysql - 如何在mysql中的where条件下使用动态数据更新表

php - 将 YouTube URL 替换为 MySQL PHPMyAdmin 中的嵌入代码

mysql - Vagrant:如果共享/var/lib/mysql,mysql 不会启动

sql - 我什么时候应该在查询中使用distinct?

mysql - 从 SKU 获取永久链接

php - jQuery AJAX 调用数据库查询

java - 在方法内关闭数据库相关资源

php - 找不到 Laravel 虚拟主机请求 Url

javascript - 如何正确地从我的 Controller 返回注释并在 .done() AJAX 函数中使用它?

php - 当我使用代理时,我收到 502 Bad Gateway