问题描述
在运行MysqL的数据库中,我的列中的数据包含以段落标记开头和结尾的文本,并且我试图在select语句中删除它们
<p>Some Text</p>
我了解TRIM语句可以从字符串的开头,结尾或两者中删除特定字符,因此
TRIM('x' FROM xSometextx) as trimmed
这将从字符串的开头和结尾删除x,但是如果它们的开头和结尾字符不同,我无法找到TRIM。例如,是否可以在select语句中删除前导<p>
和尾随</p>
解决方法
您可以将嵌套TRIM
与说明符LEADING
和TRAILING
一起使用,以删除<p>
标签:
SELECT TRIM(TRAILING '</p>' FROM TRIM(LEADING '<p>' FROM '<p>Test</p>'))
从MySQL 8.0开始,您还可以使用REGEXP_REPLACE
删除<p>
标签,就像上面的TRIM
:
SELECT REGEXP_REPLACE('<p>Test</p>','^\<p\>|\<\/p\>$','')