簡體   English   中英

Laravel 查詢其中 json 對象數組包含

[英]Laravel query where json array of objects contains

我有一個 mysql 表和一個 JSON 列,數據如下所示:

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

如何查詢數據庫以獲取包含特定messageId的行(messageIds 是唯一的)?

我試過了:

DB::table('my_table')
 ->whereJsonContains('my_json_column',[['messageId'=>'0A0000000123ABCD1']]);

但我沒有得到任何結果。

編輯:我可以讓它在一個簡單的地方工作,比如:

DB::table('notification_history')
    ->where('nexmo_responses','like','%0A0000000123ABCD1%')
    ->get();

但這並不是一種真正干凈的方法。

您的數據在插入時看起來像是經過雙重編碼的。 這就是你問題的根源。

如果您確保數據只被編碼一次,那么當您想再次訪問它時,它將可以正確讀取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM