mysql部分替換sql語句分享
更新時間:2011年11月29日 22:50:06 作者:
有時候需要對mysql中的內容進行部分替換,那么可以參考下面的文章。
將cdb_pms表subject字段中的Welcom to替換成 歡迎光臨
復制代碼 代碼如下:
UPDATE `cdb_pms`
SET `subject` = REPLACE(`subject`, 'Welcome to', '歡迎光臨')
WHERE INSTR(`subject`,'Welcome to') > 0
替換cdb_posts表的message字段,將“viewthread.php?tid=3989”替換成“viewthread.php?tid=16546”
復制代碼 代碼如下:
UPDATE `cdb_posts`
SET `message`= REPLACE(`message`, 'viewthread.php?tid=3989', 'viewthread.php?tid=16546')
WHERE INSTR(`message`,'viewthread.php?tid=3989') > 0 ;
刪除所有的空格
復制代碼 代碼如下:
UPDATE `es_product` SET `pro_pub_time` = TRIM(`pro_pub_time`)
刪除所有飽含'['或者']'或者'.'的字符
復制代碼 代碼如下:
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '[','') WHERE INSTR(`pro_pub_time`,'[') > 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, ']','') WHERE INSTR(`pro_pub_time`,']') > 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '.','-') WHERE INSTR(`pro_pub_time`,'.') > 0
替換所有含中文'-'的為英文'-'
復制代碼 代碼如下:
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '-','-') WHERE INSTR(`pro_pub_time`,'-') > 0
將所有的年月都替換成'-'
復制代碼 代碼如下:
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '年','-') WHERE INSTR(`pro_pub_time`,'年') > 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '月','-') WHERE INSTR(`pro_pub_time`,'月') > 0
將所有'2005-04-'這種類型的替換成'2005-04-01'
復制代碼 代碼如下:
UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '01') WHERE SUBSTRING_INDEX( `pro_pub_time`, '-', -1) = '' AND LENGTH(`pro_pub_time`) > 0 AND LENGTH(`pro_pub_time`) > 5
將所有'2005-'這種類型替換成'2005-01-01'
復制代碼 代碼如下:
UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '01-01') WHERE INSTR(`pro_pub_time`,'-') > 0 AND LENGTH(`pro_pub_time`) = 5
將所有 飽含'-',但是位數(shù)小于8的改成追加'-01'
復制代碼 代碼如下:
UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '-01') WHERE INSTR(`pro_pub_time`,'-') > 0 AND LENGTH(`pro_pub_time`) < 8
將所有'2005'這樣的改成'2005-01-01'
復制代碼 代碼如下:
UPDATE `es_product` SET `pro_pub_time` = CONCAT(`pro_pub_time`,'-01-01') WHERE INSTR(`pro_pub_time`,'-') = 0 AND LENGTH(`pro_pub_time`) = 4
最后將所有'2005-01-01'格式化成'2005年01月'
復制代碼 代碼如下:
UPDATE `es_product` SET `pro_pub_time` = DATE_FORMAT(`pro_pub_time`,'%Y年%m月') WHERE INSTR(`pro_pub_time`,'-') > 0
相關文章
LEFT JOIN關聯(lián)表中ON,WHERE后面跟條件的區(qū)別
本文主要介紹了LEFT JOIN關聯(lián)表中ON,WHERE后面跟條件的區(qū)別,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示
使用union操作符會將多張表中相同的數(shù)據(jù)取值一次,如果想將表1和表2中的值完整的顯示出來,可以使用union all,今天通過本文給大家分享MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示功能,需要的朋友參考下吧2021-08-08淺談Mysql insert on duplicate key 死鎖問
本文介紹了在并發(fā)場景下的 insert on duplicate key update sql 出現(xiàn)的死鎖,經(jīng)過分析發(fā)現(xiàn)這種sql確實比較容易造成死鎖,這篇文章就從分析死鎖展開,到最終如何解決這樣的問題 分享相應的思路,感興趣的可以了解一下2022-05-05