MySql笔记

发布于 2020-07-09  97 次阅读


根据查询结果及条件更新数据

例:

UPDATE st_sch_school t1 LEFT JOIN
(SELECT sch_id,sa_vr,mp_id FROM st_sch_area ) t2 
ON t1.sch_id = t2.sch_id
set t1.sch_is_online = 1 
WHERE t2.mp_id>0 or (t2.sa_vr IS NOT NULL AND LENGTH(t2.sa_vr) > 0);

解释:

UPDATE 表名 变量名 LEFT JOIN//设置要更新的表
(SELECT 查询的字段 FROM 表名 ) 变量名//设置要查询的语句
ON 变量.字段 = 变量.字段//设置相关联的字段
set 变量.字段 = 1//设置要更新的字段
WHERE 变量.字段>0 or (变量.字段 IS NOT NULL AND LENGTH(变量.字段) > 0);//设置更新的条件

在mysql中更新字段的部分值,更新某个字符串字段的部分内容

sql语句如下:

UPDATE goods set img =REPLACE(img,'http://ozwm3lwui.bkt.clouddn.com','http://imgs.lqjava.com')
WHERE img like 'http://ozwm3lwui.bkt.clouddn.com%'

如上,将字符串中
http://ozwm3lwui.bkt.clouddn.com/8f86f9d55d314720a2adac37973b7b4f
替换为:
http://imgs.lqjava.com/8f86f9d55d314720a2adac37973b7b4f
解释:

UPDATE 要更新的表 set 要更新的字段 =REPLACE(要更新的字段,更换前的值,更换后的值)
WHERE 要更新的字段 like 包含的字符串