在MySQL或Laravel中使用JSON数组中的WHERE子句从数据库中获取数据

时间:2019-01-25 07:25:48

标签: php mysql

我的mysql表ordersdetail中有一个列JSON,类型为orderAnalysis的列,如下例。

第一行

{ "id": 123, "items": [ { "id": 1623364501551, "product_id": 11931258628 }, { "id": 1623364534319, "product_id": 11931258630 }] }

第二行

{ "id": 124, "items": [ { "id": 1623364501552, "product_id": 11931258629 },  { "id": 1623364534320, "product_id": 11931258632 }] }

我想从行列中获取与给定ID相匹配的任何product_id的行数据。我已经进行了研发,并获得了一些解决方案,当我尝试这些解决方案时,没有一个对我而言无效。

我尝试使用以下查询:-

#first query 
SELECT ordersdetail FROM `orderAnalysis` WHERE JSON_SEARCH(ordersdetail->>'$.items[*].product_id', 'one', 11931258628)

#second query 
SELECT ordersdetail FROM `orderAnalysis` WHERE ordersdetail->"$.items[*].product_id" = 11931258628

#third query 
SELECT ordersdetail FROM `orderAnalysis` WHERE json_extract(ordersdetail, '$.items[*].product_id') = 11931258628

但是这些查询并没有帮助我获得结果。我希望将first row作为结果输出。请帮我。 提前感谢

0 个答案:

没有答案