我有一些字符串需要使用SQL查询在我的数据库中替换。字符串是:
[附件= 号] image.jpg的[/ attacment]
我想用图像标签包装那个image.jpg,但 NUMBER 让我搞砸了,因为每个字符串都会有所不同。我可以在此查询中使用通配符来查找任何数字吗?
这是我的搜索/替换查询:
UPDATE `hd_posts`
SET `post_content` =
replace(post_content,
'[attachment=NUMBER]',
'<img src="http://mydomain.com/my-theme/images/')
然后......
UPDATE `hd_posts`
SET `post_content` = replace(post_content, '[/attachment]', '" />')
......所以我最终会这样:
<img src="http://mydomain.com/my-theme/images/image.jpg" />
有人可以帮忙吗?我对 NUMBER 使用了什么?我觉得这不是太难,但我是一个完整的新手。当然,我已经搜索过并搜索过,但我无法在任何地方找到这种确切的情况。这两个几乎给了我我需要的东西:
MySQL REPLACE variable string Search & replace in MySql, using regex
但并不完全。我还是很困惑!谢谢你的帮助。
如果我以第一个链接为例......
UPDATE `hd_posts`
SET `post_content` =
CONCAT(SUBSTRING(post_content, 1,
INSTR(post_content,'[attachment') - 1),
SUBSTRING(post_content,
INSTR(post_content, ']'),
LENGTH(post_content)
- INSTR(post_content, '[attachment'))
)
我不知道......在那个例子中,他试图用&#39;&#39;替换字符串。 (删除它),但我不知道他是如何做到的,我也不知道如何从中学到足够的东西来做我需要做的事。
答案 0 :(得分:0)
[attachment=NUMBER]image.jpg[/attacment]
。
[/attacment]
中有拼写错误。遗失了h
字母
将其更改为[/attachment]
如果内容的格式始终如此,那么
set @pc := '[attachment=NUMBER]image.jpg[/attachment]';
set @instr := INSTR(@pc, ']');
set @start_tag := substring(@pc, 1, @instr);
set @end_tag := '[/attachment]';
set @image_url :=
replace(
replace( @pc, @start_tag,
'<img src="http://mydomain.com/my-theme/images/'
), @end_tag, '" />');
select @pc;
+-------------------------------------------+
| @pc |
+-------------------------------------------+
| [attachment=NUMBER]image.jpg[/attachment] |
+-------------------------------------------+
select @instr, @start_tag, @end_tag;
+--------+---------------------+---------------+
| @instr | @start_tag | @end_tag |
+--------+---------------------+---------------+
| 19 | [attachment=NUMBER] | [/attachment] |
+--------+---------------------+---------------+
select @image_url;
+-------------------------------------------------------------+
| @image_url |
+-------------------------------------------------------------+
| <img src="http://mydomain.com/my-theme/images/image.jpg" /> |
+-------------------------------------------------------------+
演示 @ SQL Fiddle
您的更新声明可以是:
UPDATE hd_posts
SET post_content =
replace(
replace( @pc:=post_content, substring( @pc, 1, INSTR( @pc, ']' ) ),
'<img src="http://mydomain.com/my-theme/images/'
), '[/attachment]', '" />' )