Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mon instruction where avec une fonction JSON_extract sur une colonne nullable est confirmée lorsque la valeur de ladite colonne est NULL?

Ceci :

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

Devrait être :

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

C'est ainsi que fonctionnent les instructions where dans Laravel. Je n'ai pas inséré de deuxième paramètre et c'est pourquoi Laravel a supposé que je vérifiais NULL. Cela fonctionne maintenant, désolé pour ma stupidité.