sql >> Databasteknik >  >> RDS >> Mysql

Mitt where-sats med en JSON_extract-funktion på en nullbar kolumn bekräftas när nämnda kolumns värde är NULL?

Detta:

->where(function($query) use ($other_key, $new_change) {
    $query->where(DB::raw('json_extract(old_value, "$.theme_id") = 1))
        ->orWhere(DB::raw('json_extract(new_value, "$.theme_id") = 1));

Bör vara:

->where(function($query) use ($other_key, $new_change) {
    $query->where(DB::raw("json_extract(old_value, '$.theme_id')"), 1);
        ->orWhere(DB::raw("json_extract(new_value, '$.theme_id')"), 1);

Det är så där uttalanden i Laravel fungerar. Jag satte inte in en andra parameter och det var därför Laravel antog att jag letade efter NULL. Det fungerar nu, förlåt för min dumhet.




  1. MySQL JOIN med LIMIT 1 på sammanfogat bord

  2. Ytterligare bearbetning av data som returneras i given dbms_output

  3. Laravel vältalig frågebyggnad välj minvärde

  4. fråga för att visa fyra slumpmässiga data från databasen