mysql - 根据计算字段的值向 MYSQL SELECT 语句添加一个值

标签 mysql

我有以下查询

SELECT `username`, TIMESTAMPDIFF(DAY, STR_TO_DATE(enrolmentDate, '%d-%m-%Y'), now()) AS day 
FROM `users`

这会产生 2 列,“天”列中有一个数值。

有没有办法根据“天”列中的数字添加值为 1 或 0 的第 3 列?如果“day”中的值超过 700,我希望在新列中使用 1,如果不是,则使用 0。

理想的结果:

用户名 |天 |核心

用户名 1 | 100 | 0

用户名2 | 800 | 1

我可以在检索数据后在 PHP 中执行此检查,但我认为如果 MYSQL 可以执行此操作,它可能是更有效的方法?

感谢任何提示

最佳答案

您可以尝试使用子查询,如下所示,

SELECT z.*, IF(z.day > 700, 1, 0) AS core
FROM
  (
    SELECT `username`,
    TIMESTAMPDIFF(DAY, STR_TO_DATE(enrolmentDate, '%d-%m-%Y'), now()) AS day 
    FROM `users`
  ) z

关于mysql - 根据计算字段的值向 MYSQL SELECT 语句添加一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53221646/

相关文章:

php - 从嵌套在循环中的 MySQL 查询结果中提取平均值的更快方法

php - 检查 PHP 查询是否会正确执行而不会出现任何错误

php - 使用 PDO 通过 PHP 保存到 mysql 时字符串发生变异

日期高于 2038-01-19 时的 MySQL 平均日期(不能使用 UNIX_TIMESTAMP)

mysql - 如何让 MySQL 在 SQL 中抛出条件运行时异常

MySQL:打印计数值

mysql - 将文本时间戳转换为日期

mysql - 用于日期范围查询的聚簇索引与非聚簇索引

mysql - 如何在 phpmyadmin 中使用 SQL 为数据库生成新表?

php - Laravel 5.2 将用户 IP 地址保存到数据库