165 votes

Comment mettre à jour une colonne avec une valeur nulle

J'utilise mysql et j'ai besoin de mettre à jour une colonne avec une valeur nulle. J'ai essayé de nombreuses façons différentes et le mieux que j'ai obtenu est une chaîne vide.

Existe-t-il une syntaxe spéciale pour faire cela ?

5 votes

La colonne autorise-t-elle une valeur NULL ?

9 votes

UPDATE table SET column = NULL WHERE ... ; ne fonctionne pas ?

1 votes

Non, pas du tout. C'est vraiment bizarre.

0voto

Si vous suivez

UPDATE table SET name = NULL

alors le nom est "" non NULL IN MYSQL signifie que votre requête

SELECT * FROM table WHERE name = NULL ne pas travailler ou se décevoir

0voto

Balasaheb Bhise Points 245

Pour l'insertion, nous pouvons utiliser

$arrEntity=$entity->toArray();        
    foreach ($arrEntity as $key => $value) {    
        if (trim($entity->$key) == '' && !is_null($entity->$key) && !is_bool($entity->$key)){
        unset($entity->$key);
        }
    }

Lors de la mise à jour, nous pouvons utiliser

$fields=array();
foreach ($fields as $key => $value) {
        if (trim($value) == '' && !is_null($value) && !is_bool($value)){
            $fields[$key] = null;
        }
    }

-1voto

Dylan Points 1

Je pense que le problème est que les guillemets ont été saisis comme des littéraux dans votre valeur de chaîne. Vous pouvez définir ces colonnes comme nulles en utilisant :

UPDATE table SET col=NULL WHERE length(col)<3;

Vous devez bien sûr vérifier d'abord que ces valeurs sont effectivement "" avec quelque chose comme :

SELECT DISTINCT(col) FROM table WHERE length(col)<3;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X