MySQL将字符串替换为变量
我想知道,是否有任何语法可以替换数据库中的此类链接:MySQL将字符串替换为变量,mysql,sql,Mysql,Sql,我想知道,是否有任何语法可以替换数据库中的此类链接: <!-- m --><a class="postlink" href="link">text</a><!-- m --> 我知道,我可以在记事本++中进行转储和重新设置空间,但最好是在mysql中进行转储。使用INSTR和SUBSTR可以排除Url和标题。例如,创建测试数据: CREATE TABLE TableName (url varchar(255)); INSERT INTO Tabl
<!-- m --><a class="postlink" href="link">text</a><!-- m -->
我知道,我可以在记事本++中进行转储和重新设置空间,但最好是在mysql中进行转储。使用INSTR和SUBSTR可以排除Url和标题。例如,创建测试数据:
CREATE TABLE TableName (url varchar(255));
INSERT INTO TableName VALUES
('<!-- m --><a class="postlink" href="link">A</a><!-- m -->');
在''>'
和'
之间查询标题:
选择
substr(url,instr(url,“>”)+2,instr(url,”)-instr(url,“>”)-2)标题
从表名开始;
+-------+
|头衔|
+-------+
|A|
+-------+
更新所有必需的行:
UPDATE TableName
SET url = concat('[url=', substr(...), ']', substr(...), '[/url]' )
WHERE url like '%<a href=%';
更新表名
设置url=concat(“[url=”,substr(…),“]”,substr(…),“[/url]”)
其中,url(如“%1”)请做出明确的描述。这意味着您希望如何处理此文本以及数据库(反之亦然)?@Flip fratchzak这可以通过使用正则表达式来实现,但我认为MySQL中没有接收正则表达式作为参数的搜索和替换函数。因此,请尝试以下操作:。同意@Luka.Regexp可以,不幸的是在MySQL中它只支持检查(如前所述)
select
substr(url, instr(url, 'href="')+6, instr(url, '">')-instr(url, 'href="')-6) link
from TableName;
+------+
| link |
+------+
| link |
+------+
select
substr(url, instr(url, '">')+2, instr(url, '</a>')-instr(url, '">')-2) title
from TableName;
+-------+
| title |
+-------+
| A |
+-------+
UPDATE TableName
SET url = concat('[url=', substr(...), ']', substr(...), '[/url]' )
WHERE url like '%<a href=%';