需求,更新数据库某个字段,要求根据创建日期,更新改字段,例如2021-07月的数据,则更新七月的数据为 202107001 、202107002 、202107003…
sql如下:
set @rownum=0;
update t_weighted_management
SET weighting_code = CONCAT(coal_type ,DATE_FORMAT(create_time,'%Y%m%d'),
SUBSTR(CONCAT('000',(select @rownum := @rownum +1 )),-3))
WHERE DATE_FORMAT(create_time,'%Y-%m') = '2019-07';
解释:concat函数 拼接字符串,括号内可以有任意多个参数,然后将参数按顺序拼接为一个字符串
substr 函数,截取字符串 -3 参数的意思就是 截取最后三位
重点其实就是select @rownum := @rownum + 1
获取行号的意思
最终结果:分别是create_time 列和 编码列