Filtrage et tri MySQL NULL
Lors du classement des données dans MySQL à l'aide de ORDER BY, les valeurs nulles sont traitées comme 0, provoquant des incohérences dans l'ordre souhaité . Pour résoudre ce problème, envisagez d'utiliser une syntaxe spéciale pour forcer les valeurs nulles à la fin de la liste triée.
Pour trier les valeurs par ordre croissant et placer les valeurs nulles à la fin, utilisez la syntaxe suivante :
ORDER BY -position DESC
Cela inverse l'ordre ASC par défaut pour la colonne de position, traitant efficacement les valeurs nulles comme la valeur la plus élevée. En combinant cela avec un ordre DESC pour la colonne id, vous pouvez obtenir l'ordre souhaité :
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC
Cela donnera l'ordre suivant :
1, 2, 3, 4, NULL, NULL, NULL
N'oubliez pas que cette syntaxe est non documenté dans MySQL et peut ne pas être disponible dans toutes les versions. Pour une référence complète, reportez-vous à la documentation MySQL sur ORDER BY avec des indicateurs supplémentaires.
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!