使用SQL从第二个P标记<p>之后的DB获取文本

时间:2019-01-22 23:11:30

标签: mysql sql

我的数据库中有一个新闻表,该表中有一个名为TheNews的列,其中包含带有文本的HTML标签。

我想选择第二个<p>标签之间的文本。

例如,我有以下文字:

<p>Hello</p>
<p>The text that I want </p>
<p>other text</p>

我想在MySQL上使用SQL选择此文本“ 我想要的文本”。

我尝试使用此查询,但是我需要指定标记的顺序:

SELECT substring_index(substring_index(TheNews, '<p>', -1),
                       '</p>', 1)
FROM news;

1 个答案:

答案 0 :(得分:2)

不确定这是否能在您遇到的每种情况下都有效,但我认为在这里适用:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX("<p>Hello</p>
<p>The text that I want </p>
<p>other text</p>", "</p>", 2), "<p>", -1)

如果mysql有适当的strtok实现,那将是很好的。