gpt4 book ai didi

mysql - 在mysql中查找具有开始和结束位置的子字符串

转载 作者:行者123 更新时间:2023-11-29 03:31:18 24 4
gpt4 key购买 nike

我有以下数据集。

id | event_type | ivmsmessage
-----------------------------

1 | gps_report | n/a,22,n/a,0,100

2 | gps_report | n/a,22,n/a,5,90

我想提取第四位“ivmsmessage”字段中值为零的记录。所以最终的输出应该是

id | event_type | ivmsmessage
-----------------------------
2 | gps_report | n/a,22,n/a,0,100

我尝试了 locate() 函数来找到所需的结果,但这也考虑了剩余的字符串。这是我试过的 locate() 查询。

select id, even_type, ivmsmessage from live_events where locate(0, ivmsmessage,9) > 0;

生成以下结果。

id | event_type | ivmsmessage
-----------------------------

1 | gps_report | n/a,22,n/a,0,100

2 | gps_report | n/a,22,n/a,5,90

由于 90 分之 0,它也考虑第二条记录。

有什么方法可以传递字符串的开始和结束位置,以便查询仅在有限的位置查找?

非常感谢任何帮助。

最佳答案

substring_index 是你的 friend 。

select * 
from table1
where substring_index(substring_index(ivmsmessage, ',', -2), ',', 1) = 0

quick demo

substring_index(string, delim, count) 将为您提供 count 左侧的所有内容 delim 的出现次数字符串。如果 count 是负数,它会把所有东西都放在右边,从右边开始计数。将两者结合起来,我们可以将分隔字符串中的特定元素归零。

在此示例中,substring_index('n/a,22,n/a,0,100', ',', -2) 给出 0,100,并且 substring_index('0,100', ',', 1) 给出 0,然后我们对其进行测试。

关于mysql - 在mysql中查找具有开始和结束位置的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30163779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com