MySQL用变量替换字符串

时间:2014-07-26 11:17:29

标签: mysql sql

我想知道,如果有任何语法来替换数据库中的这样一个链接:

<!-- m --><a class="postlink" href="link">text</a><!-- m -->

成像:

[url=link]text[/url]

我知道,我可以在notepad ++中进行转储和重新扩展,但最好还是在mysql中为我做。

1 个答案:

答案 0 :(得分:0)

使用INSTR和SUBSTR,您可以排除网址和标题。例如,创建测试数据:

CREATE TABLE TableName (url varchar(255));
INSERT INTO TableName VALUES
      ('<!-- m --><a class="postlink" href="link">A</a><!-- m -->');

'href="''">'之间的查询链接:

select 
  substr(url, instr(url, 'href="')+6, instr(url, '">')-instr(url, 'href="')-6) link 
  from TableName;

+------+
| link |
+------+
| link |
+------+

'">''</a>'之间查询标题:

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