85 votes

Requête MySql Remplacer NULL par une chaîne vide dans Select

Comment remplacer une valeur NULL dans la sélection par une chaîne vide ? Cela n'a pas l'air très professionnel de sortir des valeurs "NULL".

C'est très inhabituel et, d'après ma syntaxe, je m'attendrais à ce que cela fonctionne. J'espère pouvoir expliquer pourquoi ce n'est pas le cas.

select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test;

Exemple de ce à quoi ressemble le tableau original, ce que je veux, et ce qui s'imprime réellement :

original     wanted      what actually prints
--------     ------      ---------------------
value1       value1      
NULL                     NULL
value2       value2      
NULL                     NULL

Comme vous pouvez le voir, cela fait l'inverse de ce que je veux. J'ai donc essayé de remplacer IS NULL par IS NOT NULL et, bien sûr, cela n'a pas réglé le problème. J'ai également essayé de permuter la position de when case, ce qui n'a pas fonctionné.

Il semble que les 3 solutions données ci-dessous fassent toutes l'affaire.

select if(prereq IS NULL ," ",prereq ) from test
select IFNULL(prereq,"") from test
select coalesce(prereq, '') from test

3voto

M.Nemes Points 31

La forme originale est presque parfaite, il suffit d'omettre prérequis après CASE :

SELECT
  CASE
    WHEN prereq IS NULL THEN ' '
    ELSE prereq
  END AS prereq
FROM test;

2voto

SenorAmor Points 2223

Essayez COALESCE . Il retourne la première valeur non NULL.

SELECT COALESCE(`prereq`, ' ') FROM `test`

0voto

Hunter McMillen Points 17717

Essayez ceci, cela devrait également vous débarrasser de ces lignes vides :

SELECT prereq FROM test WHERE prereq IS NOT NULL;

-2voto

Daniel Points 1

J'ai des valeurs nulles (NULL comme valeur par défaut) dans un champ non obligatoire d'une base de données. Ils n'entraînent pas l'affichage de la valeur "null" dans une page Web. Cependant, la valeur "null" est mise en place lors de la création de données via un formulaire de saisie de page Web. Cela est dû au fait que le JavaScript prend la valeur "null" et la transcrit en chaîne "null" lors de la soumission des données via AJAX et jQuery. Assurez-vous que ce n'est pas le problème de base, car la solution ci-dessus n'est qu'un pansement sur le problème réel. J'ai également mis en œuvre la solution ci-dessus IFNULL(...) à titre de double mesure. Merci.

-2voto

Abderrahmane Points 24
UPDATE your_table set your_field="" where your_field is null

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