在MySQL数据库中搜索两个不同分隔符之间的字符串

在MySQL数据库中搜索两个不同分隔符之间的字符串,mysql,sql,Mysql,Sql,在我的MySQL数据库中,有几个文本字段的内容如下(空格等与我的数据库中的内容相同): 我需要将此更改为: <dt>Phone:</dt><dd>0 63 32/48 32 49</dd> <dt>Mobile:</dt><dd>04 78/9 62 83 74</dd> <dt>Homepage:</dt><dd><a href="http://www.ex

在我的MySQL数据库中,有几个文本字段的内容如下(空格等与我的数据库中的内容相同):

我需要将此更改为:

<dt>Phone:</dt><dd>0 63 32/48 32 49</dd>
<dt>Mobile:</dt><dd>04 78/9 62 83 74</dd>
<dt>Homepage:</dt><dd><a href="http://www.example.com">www.example.com</a></dd>
电话:0 63 32/48 32 49
流动电话:0478/962874
主页:
我也用谷歌搜索,但没有成功

有人知道如何使用SQL实现这一点吗

非常感谢您的帮助。

可用于将文本拆分为字符串,然后可以按照任何要求的方式包装字符串:

Select Src,
  CONCAT('<dt>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 1), Delim, -1),
    '</dt><dd>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 2), Delim, -1),
    '</dd>
<dt>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 3), Delim, -1),
    '</dt><dd>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 4), Delim, -1),
    '</dd>
<dt>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 5), Delim, -1),
    '</dt><dd><a href="http://',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 6), Delim, -1),
    '">',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 6), Delim, -1),
    '</a></dd>'
  ) As Tgt
From (
Select
'Phone:
    0 63 32/48 32 49
Mobile:
    04 78/9 62 83 74
Homepage:
    www.example.com' As Src, '
' As Delim) s0
选择Src,
CONCAT(“”,
子字符串索引(子字符串索引(Src,Delim,1),Delim,-1),
'',
子字符串索引(子字符串索引(Src,Delim,2),Delim,-1),
'
',
子字符串索引(子字符串索引(Src,Delim,3),Delim,-1),
'',
子字符串索引(子字符串索引(Src,Delim,4),Delim,-1),
'
',
子字符串索引(子字符串索引(Src,Delim,5),Delim,-1),
''
)作为Tgt
从(
挑选
"电话:
0 63 32/48 32 49
流动电话:
04 78/9 62 83 74
主页:
www.example.com“作为Src,”
“作为熟食)s0


第一个子字符串可以是
SUBSTRING\u INDEX(Src,Delim,1),
,最后一个子字符串可以是
SUBSTRING\u INDEX(Src,Delim,-1)
,但我认为将它们与其余字符串保持一致更为清晰。

您不应该使用SQL,而应该使用PHP。首先,您不应该将带分隔符的数据保存到数据库中,但我需要用SQL完成这项工作。你知道如何使用SQL吗?为什么需要使用SQL?如果这种格式是一致的,你可以在PHP中使用正则表达式。这就是问题所在。并非所有数据都是这样。请提供非标准示例。还要解释为什么需要在SQL中执行。我认为用SQL做这件事需要做很多工作(或者我用SQL做这件事的方法会很多,也许有人有更好的方法)。您好,非常感谢您的回答。但我需要搜索手机,手机,主页…因为它并不总是相同的顺序和项目编号。有些只有一个号码,有些有两个主页,有些有多个电话号码,有些甚至有一个地址。你需要搜索电话、手机、主页等,还是适应不同的格式?您是否需要要转储的地址等?每个字段的最大标记数是多少?
Select Src,
  CONCAT('<dt>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 1), Delim, -1),
    '</dt><dd>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 2), Delim, -1),
    '</dd>
<dt>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 3), Delim, -1),
    '</dt><dd>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 4), Delim, -1),
    '</dd>
<dt>',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 5), Delim, -1),
    '</dt><dd><a href="http://',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 6), Delim, -1),
    '">',
    SUBSTRING_INDEX(SUBSTRING_INDEX(Src, Delim, 6), Delim, -1),
    '</a></dd>'
  ) As Tgt
From (
Select
'Phone:
    0 63 32/48 32 49
Mobile:
    04 78/9 62 83 74
Homepage:
    www.example.com' As Src, '
' As Delim) s0