我想知道,如果有任何语法来替换数据库中的这样一个链接:
<!-- m --><a class="postlink" href="link">text</a><!-- m -->
成像:
[url=link]text[/url]
我知道,我可以在notepad ++中进行转储和重新扩展,但最好还是在mysql中为我做。
答案 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=%';