定位,子串查询

时间:2017-04-28 13:04:28

标签: mysql

我试图从mysql中的2个字符串点之间提取数据,我的示例脚本将是

'otherdata&安培; P1 = textneeded&安培; otherdata'

我需要拉“textneeded”位,“P1 =”是起始位置,只会在字符串中出现一次但是“&”标志可以出现倍数倍。如果这2点之间没有任何内容,则只返回空白。在我放置其他数据的地方,这可能是我试图从中提取数据的两端的不同数量的东西。我不是mysql的专家,所以任何帮助都会受到赞赏。

谢谢

1 个答案:

答案 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)