我试图从mysql中的2个字符串点之间提取数据,我的示例脚本将是
'otherdata&安培; P1 = textneeded&安培; otherdata'
我需要拉“textneeded”位,“P1 =”是起始位置,只会在字符串中出现一次但是“&”标志可以出现倍数倍。如果这2点之间没有任何内容,则只返回空白。在我放置其他数据的地方,这可能是我试图从中提取数据的两端的不同数量的东西。我不是mysql的专家,所以任何帮助都会受到赞赏。
谢谢
答案 0 :(得分:0)
您可以使用MySQL的locate()函数来获取p1=
子字符串的位置,然后获取下一个&
的位置,并使用substr()来提取两者之间的字符串。 +3
和-3
是为了弥补p1=
:
set @s='otherdata&p1=textneeded&otherdata';
select substr(@s,locate('p1=',@s)+3,locate('&',@s,locate('p1=',@s))-locate('p1=',@s)-3)