从数据库中删除HTML分隔符后删除字符串值?

时间:2014-08-19 05:50:51

标签: mysql sql database

我目前正在将我的网站迁移到其他平台。在我的数据库中,我有一个名为excerpt的列,它应该只包含我博客文章中的介绍文本。迁移我的数据库后,我发现我的excerpt列和我的content列是相同的重复值。基本架构如下所示:

--------------------------------------------------------------------------
id | title       | excerpt                                     | content |
--------------------------------------------------------------------------
1  | This post.  |<p>Text I want.</p><p>Text I don't want.</p> |<p>Text..|
2  | That post.  |<p>Text I want.</p><p>Text I don't want.</p> |<p>Text..|
3  | Next post.  |<p>Text I want.</p><p>Text I don't want.</p> |<p>Text..|
4  | What post?  |<p>Text I want.</p><p>Text I don't want.</p> |<p>Text..|
5  | Whose post? |<p>Text I want.</p><p>Text I don't want.</p> |<p>Text..|
--------------------------------------------------------------------------

我想知道的是,在excerpt列中,如何在第一次</p>出现后删除所有内容?我在过去几天一直在寻找解决方案,我唯一遇到的是SQL中的REGEXP,但我仍然是编写查询命令的新手。

非常感谢任何帮助。谢谢大家!

1 个答案:

答案 0 :(得分:0)

试试这个:

select 
    excerpt,
    substring(excerpt, 0, locate('</p>', excerpt) + char_length('</p>')) 
from 
    your_table

修改

select 
    excerpt,
    substring_index(excerpt, '</p>', 1) 
from 
    your_table