J'ai une table T qui a une colonne A. A commencé avec une valeur par défaut de NULL. 40 lignes plus tard, j'ai changé la valeur par défaut à 1. Trois lignes avaient une valeur de 2. J'ai essayé de sélectionner toutes les lignes où la colonne A où pas 2 et les mettre à la nouvelle par défaut de 1 (qui ne s'est pas produit automatiquement lorsque je modifié la table). J'ai d'abord essayé:MySQL pas et pas égal des opérateurs échouent, ce qui donne?
update T set A=1 where A != 2;
Nada. N'a pas fonctionné. Lignes zéro sélectionnées Ensuite j'ai essayé:
update T set A=1 where !(A=2);
Non, rien là non plus. J'ai essayé de les brancher sur des sélections, pour voir si quelque chose n'allait pas avec la mise à jour, mais celles-ci n'ont rien retourné non plus. Le manuel de référence MySQL dit que! = Et! sont des opérateurs valides et devraient être parfaitement valides dans ce contexte. J'ai finalement atteint mon objectif en utilisant IS NULL, mais ces déclarations devraient fonctionner. Alors qu'est-ce qui donne? Pourquoi cela n'a-t-il pas fonctionné?
J'exécute la version MySQL: 5.1.41-3ubuntu12.6 (Ubuntu)
Mentionné dans la question que j'ai déjà atteint mon objectif en utilisant IS NULL. Sens, je l'ai déjà fait. Mais merci pour le peu de comparaisons impliquant NULL! –