使用MySql替换字符串的特定部分


Replace a specific part of a string using MySql

我在数据库中有许多字符串,如

<iframe src="https://www.youtube.com/embed/-qTiYA1WiY8&index=8&list=PLPNcLSfYNC3Dw535smncyHRCBRmdf1Bti"
frameborder="0" allowfullscreen></iframe>

我想这样改变这些

原始:

www.youtube.com/embed/-qTiYA1WiY8&index=8&list=PLPNcLSfYNC3Dw535smncyHRCBRmdf1BtiDesired:- www.youtube.com/embed/-qTiYA1WiY8

所以最终字符串可以转换为

<iframe src="https://www.youtube.com/embed/-qTiYA1WiY8"
    frameborder="0" allowfullscreen></iframe>

我可以用php来做,但我更喜欢用mysql查询

我尝试使用:

UPDATE MyTable
    SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')

需要一个通用的解决方案,可以替换&之前的字符串

这应该是你想要的

UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, CONCAT('&', SUBSTRING_INDEX(SUBSTRING_INDEX(StringColumn, '"', 2), '&', -2)), '')
WHERE ConditionColumn = <CONDITION>

假设src的值包含两个&实例,并且用双引号括起来

使用如下-

UPDATE mytable SET stringcolumn=SUBSTRING_INDEX(stringcolumn,'&',1);

你可以通过下面的查询-

检查你的输出
SELECT SUBSTRING_INDEX(stringcolumn,'&',1) FROM mytable;