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

'otherdata&p1 = textneeded&otherdata'

我需要拉“ textneeded”位,“ P1 =”是开始位置,并且只会在字符串中出现一次,但是“&”符号可以出现多次。如果这两个点之间什么都没有,则返回一个空白。在我放置其他数据的地方,这可能是我要从中提取数据的点的两端的变化。我根本不是mysql专家,因此不胜感激。

谢谢

最佳答案

您可以使用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)

关于mysql - 查找,子字符串查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43680948/

10-15 01:15