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 ?
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 ?
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;
}
}
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 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.
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.