mysql - 返回结果前更改mysql字段的值

标签 mysql sql date select sql-update

我通常在代码中处理这个,只是想检查是否可以直接在查询中完成

例如场景

TABLE : PRODUCTS
ProductID  |OnPromotion   |PromotionEndDate
1           Y              31-12-2014
2           Y              20-10-2014
3           Y              31-12-2014

在上面的场景中,如果想要获取所有项目的列表但是 对于 PromotionEndDate 小于 curdate() 的项目,它应该将 OnPromotion 字段更改为“N” 然后服务结果。这在 mysql 中可能吗?

最佳答案

试试这个:

SELECT
    ProductID,
    (
        CASE 
            WHEN PromotionEndDate < CURRENT_DATE()
            THEN 'N'
            ELSE OnPromotion
        END
    )AS OnPromotion,
    PromotionEndDate
FROM
    PRODUCTS

关于mysql - 返回结果前更改mysql字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27223996/

相关文章:

mysql - 获取当月的周数 Crystal Reports 公式

sql - 分组依据中的最大行数

MYSQL delete - 表 'USER_TABLE' 被指定两次,既作为 'DELETE' 的目标,又作为单独的数据源

java - 如何在Java中获取您所在时区的当前时间

php - 为什么这个 usort 没有对日期数组进行排序?

mysql - 减去两个不存在行中带有负数的mysql表

mysql - 无法获取 mySQL 转储

php - 使用 MySQL、PHP/JavaScript/Ajax/jQuery 链接下拉列表

php - 从一个表中删除行并添加到另一个表中

java - 如何仅获取本地时间模式和本地日期模式?