我需要从表格中选择数据。该表有一个时间戳列。 如果时间戳超过一年,那么在结果中我喜欢为该记录设置active = false,否则它是active = true。
我可以获取结果然后在PHP中循环它并设置这个值。但这是否已经可以通过某个MySQL select语句来实现?
以下答案:
SELECT if(timestamp < now() - interval 1 year,false,true) as active FROM table
答案 0 :(得分:1)
尝试下面的代码,
UPDATE 'TABLENAME' SET active='false' WHERE timestamp > '1year'
不更新,
SELECT if(timestamp > '1year',false,true) as flag FROM 'TABLENAME'
答案 1 :(得分:1)
如果您接受一年有365天:
update t
set active = 0
where timestampcol < unix_timestamp() - (365*24*60*60);
否则,您需要进行一些转换:
update t
set active = 0
where timestampcol < unix_timestamp(date_sub(curdate(), interval 1 year))