我是MariaDB的新手。
我有一张桌子。每行都有自己的有效性。
CREATE TABLE `tariff_table` (
`transportation_id` int(11) NOT NULL AUTO_INCREMENT,
`transporter` varchar(300) NOT NULL,
`valid_upto` date NOT NULL,
`expired_status` int(11) NOT NULL DEFAULT '0',
`status` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`transportation_id`)
)
表格结果:
tariff_id || transporter || valid_upto || expired_status || status
------------------------------------------------------------------
1 || Raj || 2014-12-08 || 0 || 0
2 || Ram || 2015-01-10 || 0 || 0
3 || Mani || 2014-03-06 || 0 || 0
4 || Mano || 2015-04-15 || 0 || 0
我的要求是,如何使用选择查询更新过期状态。
select tariff_id from tariff_table where valid_upto <= DATE(now());
选择查询返回2行。
tariff_id
---------
1
3
在 id 的帮助下,我需要按照以下方式进行更新。
我需要以下结果。
tariff_id || transporter || valid_upto || expired_status || status
------------------------------------------------------------------
1 || Raj || 2014-12-08 || 1 || 0
3 || Mani || 2014-03-06 || 1 || 0
帮帮我。
答案 0 :(得分:3)
您可以使用UPDATE
语句,如下所示:
UPDATE `tariff_table`
SET `expired_status` = 1
WHERE valid_upto <= DATE(now());
答案 1 :(得分:2)
使用IN
关键字。
UPDATE tariff_table SET expired_status = 1 WHERE tariff_id
IN(select tariff_id from tariff_table where valid_upto <= DATE(now()))
OR
UPDATE tariff_table SET expired_status = 1 WHERE valid_upto <= DATE(now())