在mysql列上计算特定值



我有trx 表

id    name     respond
1     john     DETIL!518050381482|202003|SRI RAHAYU               |  R1|450|6784|6866|0|0|0|0|047421CB6333E1FB10624B8BD3462256|2020-03-31 20:19:12|37881|2750|0|0|ASLI:asialink|LISTRIK|"Informasi Hubungi Call Center 123 Atau Hub PLN Terdekat :"                     . Powered by Bukopinet.|123            |21d94ad2fb7127e7ccbc5928c22996f1*!93116677|93116677|79
2     dana     DETIL!518030384979|202003|MUSJARI                  |  R1|900|450|15769|0|0|0|0|047421CB6333E546FEB23EA60FE279C5|2020-03-31 20:53:28|462570|2750|0|0|ASLI:asialink|LISTRIK|"Informasi Hubungi Call Center 123 Atau Hub PLN Terdekat :"                     . Powered by Bukopinet.|123            |700ab80876c7d0f0e3ea5621c29988e3*!89065543|89065543|79
3     toni     DETIL!518030384770|202003|KASBUN                   |  R1|450|15502|15603|0|0|0|0|047421CB6333E552C7AC8A082139A502|2020-03-31 20:54:17|48227|2750|0|0|ASLI:asialink|LISTRIK|"Informasi Hubungi Call Center 123 Atau Hub PLN Terdekat :"                     . Powered by Bukopinet.|123            |ec47a682782daa193cd3b9e8a241664e*!88781316|88781316|79

我想计算列上有多少450值(在R1之后(响应。

我使用了select count(*) from trx where respond like '%|450|%'

但它显示为3,因为id 2的值为|450|,但我只期望R1 之后的值

应该是2

这就是您想要的吗?

where respond like '%R1|450|%'

这将适用于您的样本数据。

使用正则表达式可以更加灵活:

where respond regex 'R1[^|]*\|450\|'

该短语为:'R1'后接除'|'之外的0到n个字符,后接'|450|'

相关内容

  • 没有找到相关文章

最新更新