MySQL的if语句可以用在很多地方,比如查询的时候,跟在select后面,修改的时候跟在update后面,也可以跟在条件 where后面
IF(expr1,expr2,expr3)
如果expr1 成立,返回 expr2,否则返回 expr3。但是expr3如果不写那就会报错。
在修改的时候
比如我想在修改的时候,如果state=1 就不修改发布时间和发布人:可以这样去写
注意 =1 和 ='1' 不一样,要看数据类型
update rec_notice set NOTICESTATE = #{noticeState}, UPDATEUSER = #{userId}, UPDATETIME = now(), PUBLISHUSER = IF(#{noticeState} = 1, #{userId} ,PUBLISHUSER) , PUBLISHDATE = IF(#{noticeState} = 1, now() , PUBLISHDATE ) WHERE ... ...
在查询的时候:
如果 优先级一样,按照时间排序,不一样那就不执行条件
where
state = 1
and IF ( porder = #{porder} , createTime <= #{createTime} , 1=1 )