在返回结果之前更改mysql字段的值
我通常在代码中处理这个问题,只是想检查是否可以直接在查询中完成 e、 g情景在返回结果之前更改mysql字段的值,mysql,sql,date,select,sql-update,Mysql,Sql,Date,Select,Sql Update,我通常在代码中处理这个问题,只是想检查是否可以直接在查询中完成 e、 g情景 TABLE : PRODUCTS ProductID |OnPromotion |PromotionEndDate 1 Y 31-12-2014 2 Y 20-10-2014 3 Y 31-12-2014 在上述场景中,如果希望获得所有项目的列表,则 对于PromotionE
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中可能吗?试试这个:
首先更新表中的数据,然后选择所需数据
UPDATE PRODUCTS SET OnPromotion = 'N' WHERE PromotionEndDate < CURRENT_DATE();
SELECT * FROM PRODUCTS
updateproducts SET on promotion='N'其中PromotionEndDate
试试这个:
SELECT
ProductID,
(
CASE
WHEN PromotionEndDate < CURRENT_DATE()
THEN 'N'
ELSE OnPromotion
END
)AS OnPromotion,
PromotionEndDate
FROM
PRODUCTS
选择
ProductID,
(
案例
促销结束日期<当前日期()时
然后
其他关于晋升的问题
结束
)作为一种晋升,
促销结束日期
从…起
产品
您可以运行更新
然后选择
。可以在两个查询中做一些事情。是的,MySQL有如果。。。ELSE
clausei如果你的意思是“更新select子句中的值”,那么答案是否定的。你需要一个存储过程,或者一次更新一次select来完成。你真的想更改存储在表中的值,还是只在查询中返回一个不同的值?哇,这很有效,非常聪明!将在3分钟内选择