Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Minha instrução where com uma função JSON_extract em uma coluna anulável é confirmada quando o valor da coluna é NULL?


Este:
->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));

Deveria estar:
->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);

É assim que as instruções where no Laravel funcionam. Eu não inseri um segundo parâmetro e é por isso que o Laravel assumiu que eu estava checando por NULL. Funciona agora, desculpe a minha estupidez.