如何使用MYSQL中的查询删除2个字符之间的文本

时间:2012-09-11 16:16:46

标签: mysql

我的表格包含名为description的字段,其中包含以下文字

|Description                              |
|-----------------------------------------|
|This is a text <a>blah</a> <br/> <img /> |
|This is <b>second</b> <a>row</a>         |

我想删除“&lt; ”和“&gt; ”之间的所有内容

必需输出

|Description                              |
|-----------------------------------------|
|This is a text blah                      |
|This is second row                       |

无论如何,我可以使用MYSQL查询来实现这一点。我目前无法使用存储过程,因为我没有权限。我已经请求访问使用存储过程,但这需要一些时间,我必须紧急完成这一点。

感谢。

更新:我的问题与Remove string between 2 characters from text string类似,但我希望在MYSQL查询中完成。

4 个答案:

答案 0 :(得分:3)

简而言之,您不能,您需要更高级的语言,如PHP。您的SQL查询不是进行字符串操作的地方。

答案 1 :(得分:1)

REPLACE()如何使用通配符捕获开始和结束括号之间的未知文本? http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace

答案 2 :(得分:0)

如果你使用php作为服务器端语言,你可以使用strip_tags函数删除标签。我希望它可以帮助你。

答案 3 :(得分:0)

因为这个问题仍然在谷歌搜索结果中,所以答案可能对某人有所帮助:

一个快速函数,用于替换两个字符之间的内容。它也应该用文字来处理,但我没有用文字测试它。要删除以下字符串: “这是[演示]”

[和]之间的字符串:

选择deletestr(“这是[demo]”,'[',']');

和功能:

 CREATE DEFINER=`replace_with_your_db`@`%` 
FUNCTION `deletestr` (`inputstr` TEXT CHARSET utf8, `fromstr` VARCHAR(10) CHARSET utf8, `tostr` VARCHAR(10) CHARSET utf8) RETURNS text CHARSET utf8
    NO SQL
RETURN
replace(inputstr,substr(inputstr, locate(fromstr,inputstr),locate(tostr,inputstr)-locate(fromstr,inputstr)+length(tostr)),'')