0
我想知道,如果有任何语法替换数据库这样的链接:MySQL的替换字符串变量
<!-- m --><a class="postlink" href="link">text</a><!-- m -->
成类似:
[url=link]text[/url]
我知道,我可以让在记事本++中dump和relpace它,但是最好在mysql中为我做。
我想知道,如果有任何语法替换数据库这样的链接:MySQL的替换字符串变量
<!-- m --><a class="postlink" href="link">text</a><!-- m -->
成类似:
[url=link]text[/url]
我知道,我可以让在记事本++中dump和relpace它,但是最好在mysql中为我做。
使用INSTR和SUBSTR可以排除Url和Title。例如,创建测试数据:
: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=%';
请做出明确的描述。表示您希望本文和数据库反之亦然? @Flip Fratczak –
这将可能实现使用正则表达式,但我认为没有一个搜索和替换函数接收正则表达式作为参数在MySQL中。出于这个原因,试试这个:https://github.com/hholzgra/mysql-udf-regexp。 – Luka
同意@Luka。 Regexp会很好,不幸的是,在MySQL中,它只支持检查(如[这里讨论的](http://stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql)) –