Laravel 查询对象的 json 数组包含的位置

我有一个带有 JSON 列的 mysql 表,其中的数据如下所示:


"[

{\"messageId\":\"0A0000000123ABCD1\",\"status\":\"request\\/0\",\"messagePrice\":\"0.03330000\"},            

{\"messageId\":\"0A0000000123ABCD2\",\"status\":\"request\\/0\",\"messagePrice\":\"0.03330000\"}

]"

如何查询数据库以获取包含特定messageId 的行(messageId 是唯一的)?


我试过 :


DB::table('my_table')

 ->whereJsonContains('my_json_column',[['messageId'=>'0A0000000123ABCD1']]);

但我没有得到任何结果。


编辑: 我可以让它与一个简单的地方一起工作,例如:


DB::table('notification_history')

    ->where('nexmo_responses','like','%0A0000000123ABCD1%')

    ->get();

但这并不是一个真正干净的方法。


茅侃侃
浏览 121回答 1
1回答

慕村9548890

您的数据在插入时看起来像是经过双重编码的。这就是你问题的根源。如果您确保数据仅编码一次,那么当您想要再次访问它时,它将可以正确读取。
打开App,查看更多内容
随时随地看视频慕课网APP