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 ?
Pas de syntaxe particulière :
CREATE TABLE your_table (some_id int, your_column varchar(100));
INSERT INTO your_table VALUES (1, 'Hello');
UPDATE your_table
SET your_column = NULL
WHERE some_id = 1;
SELECT * FROM your_table WHERE your_column IS NULL;
+---------+-------------+
| some_id | your_column |
+---------+-------------+
| 1 | NULL |
+---------+-------------+
1 row in set (0.00 sec)
NULL
est une valeur spéciale en SQL. Donc pour annuler une propriété, faites ceci :
UPDATE table SET column = NULL;
Maintenant, laissez-moi clarifier. Dans php, j'utilise PDO et je mets à jour par une requête.
Le manuel MySQL indique que si la colonne n'autorise pas les valeurs NULL, le fait de lui attribuer la valeur NULL donnera la valeur par défaut du type de données (par exemple, une chaîne vide). Êtes-vous sûr à 100% que votre colonne autorise les valeurs NULL ? Pouvez-vous nous montrer le CREATE TABLE ?
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é dans la question mais je n'ai pas pu la trouver ici.
Une autre façon de formuler la question ci-dessus "mettre à jour une colonne avec une valeur nulle". pourrait être "Mettre à jour toutes les lignes de la colonne avec une valeur nulle".
Dans une telle situation, les travaux suivants sont effectués
update table_name
set field_name = NULL
where field_name is not NULL;
is
également is not
fonctionne dans mysql
N'oubliez pas de vérifier si votre colonne peut être nulle. Vous pouvez le faire en utilisant
mysql> desc my_table;
Si votre colonne ne peut pas être nulle, lorsque vous définissez la valeur sur null, elle sera la valeur coulée sur celle-ci.
Voici un exemple
mysql> create table example ( age int not null, name varchar(100) not null );
mysql> insert into example values ( null, "without num" ), ( 2 , null );
mysql> select * from example;
+-----+-------------+
| age | name |
+-----+-------------+
| 0 | without num |
| 2 | |
+-----+-------------+
2 rows in set (0.00 sec)
mysql> select * from example where age is null or name is null;
Empty set (0.00 sec)
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.