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

时间:2014-12-01 07:59:04

标签: 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中吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分:0)

试试这个:

首先更新表格中的数据,然后选择所需的数据

UPDATE PRODUCTS SET OnPromotion = 'N' WHERE PromotionEndDate < CURRENT_DATE();
SELECT * FROM PRODUCTS