Trim MySQL 中字符串开头和结尾的不同字符

Trim different characters from beginning and end of string in MySQL

在数据库中 运行 MySQL 我在一个列中有数据,其中包含以段落标记开头和结尾的文本,我试图在 select 语句中删除它们

<p>Some Text</p>

我了解 TRIM 语句可以从字符串的开头、结尾或两者中删除特定字符,所以

TRIM('x' FROM xSometextx) as trimmed

这将从字符串的开头和结尾删除 x,但如果开头和结尾字符不同,我无法找到 TRIM。例如,是否可以删除 select 语句

中的前导 <p> 和尾随 </p>

您可以使用带有说明符 LEADINGTRAILING 的嵌套 TRIM 来删除 <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\>$', '')

demo on dbfiddle.uk