mysql replace update 函数
语法 replace(object,search,replace)
语义 把object对象中出现的的search全部替换成replace
UPDATE hellotable SET 'helloCol' = replace('helloCol','from','to')
replace into函数
replace 替换 有唯一索引或 主键索引重复数据的能力 如果使用replace into插入的数据的唯一索引或 主键索引与之前的数据有重复的情况 将会删除原先的数据 然后再进行添加
语法 replace into table( col1, col2, col3 ) values ( val1, val2, val3 )
语义 向table表中col1, col2, col3列replace数据val1 val2 val3
REPLACE INTO users (id,name,age) VALUES(123, ‘chao’, 50);
当查出来的手机号需要隐藏中间的数字时可
SELECT REPLACE(phone, SUBSTR(phone,4,4), 'XXXX') AS phone FROM smart_platform_db.users
Mysql 跨表更新 多表update sql语句
假定有两张表
一张表为Product表存放产品信息 有产品价格列Price
一张表是ProductPrice表
要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%
Mysql有几种手段
一种 update table1 t1, table2 ts
UPDATE product p, productPrice pp SET pp.price = pp.price * 0.8 WHERE p.productId = pp.productId AND p.dateCreated < '2019-01-01'
另 一种方法使用inner join然后更新
UPDATE product p INNER JOIN productPrice pp ON p.productId = pp.productId SET pp.price = pp.price * 0.8 WHERE p.dateCreated < '2019-01-01'
也可以使用 left outer join 做多表 update
如果ProductPrice表中没有产品价格记录的话 将Product表的isDeleted字段置为1
UPDATE product p LEFT JOIN productPrice pp ON p.productId = pp.productId SET p.deleted = 1 WHERE pp.productId IS null
同时更新两张表
UPDATE product p INNER JOIN productPrice pp ON p.productId = pp.productId SET pp.price = pp.price * 0.8, p.dateUpdate = CURDATE() WHERE p.dateCreated < '2019-01-01'
两张表做关联 更新了ProductPrice表的price字段和Product表字段的dateUpdate两个字段
update icms_content_article ca , icms_content_article_data cad set cad.content = replace(cad.content,'runcode.php','try.php') where ca.id=cad.aid and ca.cid = 59;
update icms_content_examplecode set content = replace(content,'x-webkit-airplay','x5-playsinline playsinline webkit-playsinline="true" x-webkit-airplay');
尊贵的董事大人
英文标题不为空时 视为本栏投稿
需要关键字 描述 英文标题