Maison > base de données > tutoriel mysql > Comment puis-je faire en sorte que les valeurs NULL apparaissent en dernier lors de la commande de données dans MySQL ?

Comment puis-je faire en sorte que les valeurs NULL apparaissent en dernier lors de la commande de données dans MySQL ?

Patricia Arquette
Libérer: 2024-12-15 05:07:17
original
445 Les gens l'ont consulté

How Can I Make NULL Values Appear Last When Ordering Data in MySQL?

Conserver les valeurs nulles dans la commande MySQL

Dans MySQL, la commande de données avec des valeurs nulles peut présenter un défi, car les valeurs nulles sont traitées comme 0 par défaut. Cela peut conduire à un comportement de tri involontaire où les valeurs nulles apparaissent avant les valeurs non nulles. Pour résoudre ce problème, nous pouvons utiliser une syntaxe moins connue pour forcer les valeurs nulles à apparaître en dernier dans les résultats triés.

Inverser le tri nul

MySQL propose une méthode non documentée syntaxe qui permet d’inverser l’ordre de tri des valeurs nulles. En préfixant le nom de la colonne avec un signe moins (-) et en basculant l'ASC vers DESC, nous pouvons demander à MySQL de traiter les valeurs NULL comme les valeurs les plus élevées dans l'ordre de tri.

Par exemple, considérons la clause ORDER BY suivante :

ORDER BY -position DESC, id DESC
Copier après la connexion

Cette clause triera la colonne de position par ordre décroissant, les valeurs nulles apparaissant en dernier. La colonne id sera toujours triée par ordre décroissant.

Exemple

Supposons que nous ayons une table avec les données suivantes :

| position | id |
|---|---|
| null | 10 |
| null | 11 |
| null | 12 |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
Copier après la connexion

Utilisation une clause ORDER BY traditionnelle (position ASC, id DESC), les résultats seraient classés comme suit :

| position | id |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| null | 12 |
| null | 11 |
| null | 10 |
Copier après la connexion

Cependant, en utilisant la syntaxe de tri nul inversé (-position DESC, id DESC), nous pouvons obtenir l'ordre souhaité où les valeurs nulles apparaissent en dernier :

| position | id |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| null | 10 |
| null | 11 |
| null | 12 |
Copier après la connexion

Remarque :

Cette technique n'est pas documentée et peut ne pas être prise en charge dans toutes les versions de MySQL. Consultez la documentation MySQL de votre version spécifique pour garantir la compatibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal