Mysql
 sql >> Database >  >> RDS >> Mysql

La mia istruzione where con una funzione JSON_extract su una colonna nullable è confermata quando il valore di detta colonna è NULL?

Questo:

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

Dovrebbe essere:

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

Ecco come funzionano le istruzioni where in Laravel. Non ho inserito un secondo parametro ed è per questo che Laravel ha pensato che stavo controllando NULL. Ora funziona, scusa per la mia stupidità.