首页  >  问答  >  正文

Laravel中如何判断JSON值与参数不相等?

<p>我想从数据库中获取那些不等于"My Msg"的记录。</p> <p>我的数据库列中的JSON如下:</p> <pre class="brush:php;toolbar:false;">`{ "msg": "My Msg", "resource_id": "Resourse" }`</pre> <p>我尝试了<code>JSON_EXTRACT</code>和<code>whereJsonContains</code></p> <p>但是没有运气,我使用的是Laravel 8与MySQL。</p> <p>查询如下:</p> <pre class="lang-php prettyprint-override"><code>$records = DB::table('atble')->select('res_id', 'msg_string')->where('res_id', $param)->whereJsonContains('ret_string->msg', ['elem1','elem2'...])->latest()->first(); </code></pre> <p>上述查询没有给我任何结果。</p> <p>任何帮助将不胜感激。</p>
P粉250422045P粉250422045443 天前619

全部回复(1)我来回复

  • P粉256487077

    P粉2564870772023-08-27 09:02:59

    你必须尝试这个

    $records = DB::table('atble')->select('res_id',
    'msg_string')->where('res_id',
    $param)->whereJsonContains('ret_string->msg', ['object_key' => 'object_value'])->latest()->first();

    还要遵循WhereJsonContains的正确指南

    还可以参考此链接获取更多帮助

    这是一个示例,它会帮助你。

    $array = [0 => 1, 1 => 2, 2 => 3];
    
    // Eloquent
    PaymentTransaction::whereJsonContains('payload->ProductCode- >id',$array)->get();

    回复
    0
  • 取消回复