Mysql 定位,子字符串查询

Mysql 定位,子字符串查询,mysql,Mysql,我试图从mysql中的两个字符串点之间提取数据,我的示例脚本是 'otherdata&p1=textRequired&otherdata' 我需要拉动“textRequired”位,“P1=”是起始位置,在字符串中只出现一次,“&”符号可以多次出现。如果这两点之间没有任何差异,则返回一个空白。在我放置其他数据的地方,在我试图从中提取数据的点的两端可以有不同数量的东西。我不是mysql方面的专家,所以任何帮助都将不胜感激 谢谢您可以使用MySQL函数获取p1=子字符串的位置,然后获取下一个&的位置

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

'otherdata&p1=textRequired&otherdata'

我需要拉动“textRequired”位,“P1=”是起始位置,在字符串中只出现一次,“&”符号可以多次出现。如果这两点之间没有任何差异,则返回一个空白。在我放置其他数据的地方,在我试图从中提取数据的点的两端可以有不同数量的东西。我不是mysql方面的专家,所以任何帮助都将不胜感激

谢谢

您可以使用MySQL函数获取
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)

你可以使用子字符串索引函数Hi Zaynul,我确实看过了,但这不会只查找最后一次出现的“&”符号,然后再继续工作吗?正如我在最初的查询中提到的,在我关注的一次之后,可能会有多个&符号。这很有效,很好,我已经到达了那里,但无法确定如何找到下一个“&”非常感谢!