mysql update中需要根据条件列更新写法update case

以下两条语句是否可以合并成一条:

update t9 set id=1 where   b>‘2015-10-12‘; 

update t9 set id=1, e=‘2015-01-01‘  where  b=‘2015-10-12‘; 

既然来写博客了,那答案肯定是可以的,

如下写法可以就上面的两条update语句合并成一条:

update t9 set id=1, e=(case when b=‘2015-10-12‘ then ‘2015-01-01‘ else e end)   where   b>=‘2015-10-12‘; 

即:

当b等于‘2015-10-12‘时,e值设置为‘2015-01-01‘

当b大于‘2015-10-12‘时,e值保持不变。

这是一个小小技巧,有需要的朋友尽管拿去。

时间: 2024-10-01 02:28:02

mysql update中需要根据条件列更新写法update case的相关文章

在MySQL数据库中使用判断条件

[根据学生编号和学生成绩判断学生成绩等级A90 B80 C70 D60 E60下] Select 字段列表 into 变量列表 from 表 where 条件  将某条记录中的字段列表中的值存入到变量列表中,变量列表中的变量一定是提前定义的. /* 存储过程if控制结构 */ delimiter // create procedure marks_level ( in stu_no int(4), in cla_no int(4), out _level varchar(4) ) begin d

在数据库中根据某个值递增更新(update)某个字段

在数据库中,update语句根据表中某一个确定字段,批量递增或者递减另一个字段 以下图为例: 已确认member_name字段所有的值有“renwu”,现在批量递增修改手机号和余额 set @zhi=1000000   ( 在数据库内定义变量)UPDATE bbc_member SET available_predeposit = (@zhi:= @zhi+1) where member_name like 'renwu%' 原文地址:https://www.cnblogs.com/HYL100

Unity3D 在Update中不要过多地修改Transform 信息

前文说到碰撞检测时候,不要在Update内部尝试移动GameObject 来检查碰撞检测,这样是徒劳无功.但是 说到 因为你移动的过程中其实并没有将实际的移动位置更新到物理引擎,只是做了个缓存而已, 只有在调用FixedUpdate的内部函数(物理引擎处理)时,才会将最新的位置设置到物理引擎上,甚至是渲染引擎也使用最新的位置. 其实是有问题的,因为我发现每次移动都会导致 碰撞器不断更新 下面是测试代码: int TEST = 0; // Returns true if you were able

mysql 语句中的national 、 comment

create table hms.as_othersassess(   assessid             national varchar(16) not null comment '评估编号+24位客户id+6位随机',   customerid           national varchar(13) comment '客户编号',   allergy              national varchar(500) comment '过敏史',   injury      

MySQL中不允许使用列别名作为查询条件

在MySQL中有个特殊的规定,即不允许使用列别名作为查询条件.比如有下面一个表: select     ID,     title,     concept,     conceptLength,     addUserId,     modifyTimefrom collections_wisdom 将SQL修改如下: select     ID+1 as newID,     title,     concept,     conceptLength,     addUserId,    

***mysql 用一个表的一列,去更新另一表的一列

需求: 老板给了一个EXCEL数据,是本人提供的一个模板,含ID,现在相当于要导入这新增的一列数据到数据库中的某一个表. 方法一:用navicat,在excel中复制一列,再粘贴到navicat中的一列中去 方法二:用sql的方法:先建一个临时表,将数据导入,里面有ID和desc两列,再执行下面的语句 UPDATE gy_doctor a, gy_tmp b SET a.dr_desc = b.`desc` WHERE a.dr_id = b.id; 设有表t1: id name1 null2 

mysql insert插入时实现如果数据表中主键重复则更新,没有重复则插入的四种方法

[CSDN下载] Powerdesigner 设计主键code不能重复等问题 [CSDN博客] Oracle中用一个序列给两个表创建主键自增功能的后果 [CSDN博客] MySQL自增主键删除后重复问题 [CSDN博客] mysql 主从复制 双主从复制原理 防止主键重复问题(必看) [CSDN博客] replace into导致mysql自增列导致主键重复问题分析 [CSDN博客] 一个循环更新某库所有表所有非主键列的值方法(sql 2005 & mysql) [CSDN博客] mysql i

python中单个和批量增加更新的mysql(没有则插入,有则更新)

建表语句: DROP TABLE IF EXISTS `stock_discover`; CREATE TABLE `stock_discover` ( `code` char(6) NOT NULL, `index` int(11) unsigned NOT NULL DEFAULT '0', `name` varchar(20) NOT NULL, `exchange` varchar(10) NOT NULL DEFAULT '', `date` timestamp NOT NULL DE

mysql中timestamp字段,在更新这个字段其他数据时候,不更新timestamp的时间

mysql中timestamp字段,在更新这个字段其他数据时候,不更新timestamp的时间 执行这条SQL ALTER TABLE  XXXX(表名)  CHANGE TIME TIME TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; 列如如下所示语句: ALTER TABLE  ai_manager.message_task CHANGE TIME TIME TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP