J'utilise mysql et je dois 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 ce faire?
mysql
sql-update
Jim
la source
la source
Réponses:
Aucune syntaxe particulière:
la source
NULL
est une valeur spéciale dans SQL. Donc, pour annuler une propriété, procédez comme suit:la source
Utilisez
IS
au lieu de=
Cela résoudra votre exemple de syntaxe de problème:la source
N'oubliez pas de regarder si votre colonne peut être nulle. Vous pouvez le faire en utilisant
Si votre colonne ne peut pas être null, lorsque vous définissez la valeur sur null, elle sera la valeur de conversion.
Voici un exemple
la source
Pour ceux qui sont confrontés à un problème similaire, j'ai trouvé que lors de la «simulation» d'une
SET = NULL
requête, PHPMyAdmin lançait une erreur. C'est un hareng rouge .. lancez simplement la requête et tout ira bien.la source
Dans les réponses ci-dessus, de nombreuses façons et répétitions ont été suggérées pour la même chose. J'ai continué à chercher une réponse comme mentionné est la question mais je n'ai pas pu trouver ici.
Mais à l'opposé de la question ci-dessus «mettre à jour une colonne avec une valeur nulle» pourrait être «METTRE À JOUR TOUTES LES LIGNES DE LA COLONNE À NULL»
Dans une telle situation suite à des travaux
is
fonctionne égalementis not
dans mysqlla source
utiliser
is
au lieu de=
Par exemple:
Select * from table_name where column is null
la source
Une autre raison possible pour la chaîne vide, plutôt qu'un vrai null, est que le champ est un index ou fait partie d'un index. Cela m'est arrivé: en utilisant phpMyAdmin, j'ai édité la structure d'un champ dans l'une de mes tables pour autoriser les NULL en cochant la case " case Null " puis sur le bouton " Enregistrer ". "La tarification de la table a été modifiée avec succès " s'affichait donc j'ai supposé que le changement s'était produit - ce n'est pas le cas. Après avoir fait un UPDATE pour mettre tous ces champs à NULL , ils étaient, au contraire, mis à des chaînes vides , alors je pris un coup d' oeil à la structure de la table à nouveau et vu que la " Null"La colonne pour ce champ était définie sur" non ". C'est à ce moment-là que j'ai réalisé que le champ faisait partie de la clé primaire !
la source
Si vous souhaitez définir une valeur nulle à l'aide de la requête de mise à jour, définissez la valeur de la colonne sur NULL (sans guillemets), mettez à jour le nom de la table, définissez le nom de la colonne = NULL
Cependant, si vous éditez directement la valeur du champ dans mysql workbench, utilisez la touche (Esc + del) pour insérer une valeur nulle dans la colonne sélectionnée
la source
si vous suivez
alors le nom est "" non NULL IN MYSQL signifie votre requête
SELECT * FROM table WHERE name = NULL
ne pas travailler ou te décevoirla source
Je soupçonne que le problème ici est que les guillemets ont été saisis comme littéraux dans la valeur de votre chaîne. Vous pouvez définir ces colonnes sur null en utilisant:
Vous devez bien sûr d'abord vérifier que ces valeurs sont bien "" avec quelque chose comme:
la source
si vous définissez NULL pour tous les enregistrements, essayez ceci:
OU définissez simplement NULL pour les enregistrements spéciaux, utilisez WHERE
la source