Maison  >  Questions et réponses  >  le corps du texte

Comment déterminer si la valeur et le paramètre JSON ne sont pas égaux dans Laravel ?

<p>Je souhaite récupérer les enregistrements de la base de données qui ne sont pas égaux à "Mon message". </p> <p>Le JSON dans la colonne de ma base de données est le suivant :</p> <pre class="brush:php;toolbar:false;">`{ "msg": "Mon message", "resource_id": "Ressource" }`</pré> <p>J'ai essayé <code>JSON_EXTRACT</code> et <code>whereJsonContains</code></p> <p>Mais pas de chance, j'utilise Laravel 8 avec MySQL. </p> <p>La requête est la suivante :</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>La requête ci-dessus ne m'a donné aucun résultat. </p> <p>Toute aide serait grandement appréciée. </p>
P粉250422045P粉250422045394 Il y a quelques jours569

répondre à tous(1)je répondrai

  • P粉256487077

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

    Vous devez essayer ça

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

    Suivez également les instructions correctes pour WhereJsonContains

    Vous pouvez également vous référer à ce lienpour plus d'aide

    Voici un exemple, cela vous aidera.

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

    répondre
    0
  • Annulerrépondre