[英]Get certain part of text and update value in mysql
我想在我的應用程序上更新一些書寫格式。 目前保存在數據庫中的內容是這樣的(示例)
HI this is link [link](Google Web)google.com[/link]
我想將其更新為純 HTML 標簽
HI this is link <a href="google.com"> Google Web</a>
我想直接在mysql上更新值
如果所有數據格式都類似於示例,請嘗試以下操作:
SELECT val,
CONCAT(SUBSTRING(REPLACE(val,'[link]','<a href="'),1,LOCATE('(',val)+2),SUBSTRING_INDEX(REPLACE(SUBSTRING(val,LOCATE(')',val)+1,999),'[/',' '),' ',1),
SUBSTRING_INDEX(REPLACE(val,SUBSTRING(val,LOCATE('(',val)),' ">'),' ',-1),SUBSTRING_INDEX(SUBSTRING(val,LOCATE('(',val)+1),')',1),REPLACE(SUBSTRING(val,LOCATE('/',val)-1),SUBSTRING(val,LOCATE('/',val)-1),'</a>')) newVal
FROM yourTable;
這是小提琴中的一個快速示例: https : //www.db-fiddle.com/f/2kCoc6DbDLh8gHPJ9Yawk9/0
這是我目前的解決方案
步驟 1.在以前的格式中放置一個鏈接
UPDATE infos
set subject = REPLACE(subject,
substring_index(substring_index(subject, '[link]', -1), '[/link]', 1),
CONCAT("<a href='"
,substring_index(substring_index(substring_index(subject, '[link]', -1), '[/link]', 1), ')', -1)
,"'>"
,substring_index(substring_index(substring_index(substring_index(subject, '[link]', -1), '[/link]', 1), '(', -1), ')', 1)
,"</a>")
)
WHERE subject LIKE '%(%'
AND subject LIKE '%)%'
AND subject LIKE '%[link]%'
AND subject LIKE '%[/link]%'
Step 2刪除[link]和[/link]標簽
UPDATE infos
set subject = REPLACE(REPLACE(subject, "[link]<a", "<a"), "</a>[/link]", "</a>")
WHERE subject LIKE '%[link]%'
AND subject LIKE '%[/link]%'
注意如果你在1個主題中有多個鏈接,它不會直接改變它,你必須重做步驟1和2,直到沒有行受到影響
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.