[英]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.