项目中有一张时间周期配置表其中就三条数据有一个字段state记录哪一条状态为启用
做的时候突发奇想要用一条sql实现当修改某一条状态为1时其他修改为0
后来在网上查了一下MySQL 的CASE WHEN语句 简单学习一下发现可以这样写 '3’ 为传入要修改状态为启用数据的ID
update mes_subscribe_time t SET t.state = CASE id WHEN '3' THEN 1 ELSE 0 END
mes_subscribe_time 表结构
CREATE TABLE `mes_subscribe_time` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`start_time` varchar(10) NOT NULL COMMENT '发送开始时间段',
`end_time` varchar(10) NOT NULL COMMENT '发送结束时间段',
`cycle` varchar(10) NOT NULL COMMENT '发送周期',
`send_time` varchar(20) DEFAULT NULL COMMENT '周期时间',
`state` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
公司网络不允许上传附件 没法传图片了 o(︶︿︶)o 唉