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=%';