mysql where查询字段是json,mysql where子句上的json字段

How can I get data that contains apiData and inside "method":"transfer"

My field name is detail and it contains this data:

{"paymentMethodData":{"id":"3","api_id":"2","account_id":null,"account_ids":null,"installment_state":null,"name_1":"Havale"},"apiData":{"id":"2","method":"transfer","name":"Havale"}}

This query works but if other options contains "method":"transfer", it gets. It shouldn't get data. If it has apiData option and inside "method":"transfer", it should get:

SELECT * FROM task_payment_actions AS tpa

INNER JOIN task_payment_action_detail AS tpad ON tpad.task_payment_action_id=tpa.id

WHERE tpad.detail REGEXP '(.*\"method\":\"transfer\".*)'

解决方案

This should work

As you said your method:"transfer" should be inside apiData I have make regexp according to your given string.

REGEXP '.*"apiData":{[",a-zA-Z0-9]*"method":"transfer"'

REGEXP '.*"apiData":{[",a-zA-Z0-9]*"method":"transfer"[",a-zA-Z0-9]*}'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值