UNION ALL garantit-il l'ordre dans les ensembles de résultats ?
En SQL, l'opérateur UNION ALL combine les résultats de plusieurs instructions SELECT. Cependant, cela ne garantit pas l’ordre des résultats. En l'absence de clause ORDER BY, l'ordre des lignes n'est pas défini et peut varier.
Considérez l'exemple fourni dans la question :
SELECT 'O' UNION ALL SELECT 'R' UNION ALL SELECT 'D' UNION ALL SELECT 'E' UNION ALL SELECT 'R'
Il est possible que les résultats soient être affiché dans l’ordre « O-R-D-E-R », mais il n’y a aucune garantie. L'ordre peut différer en fonction de facteurs tels que le moteur de base de données, la distribution des données et d'autres optimisations.
Pour appliquer un ordre spécifique, une clause ORDER BY doit être utilisée. Pour l'exemple donné, la colonne SortOrder peut être ajoutée à chaque instruction SELECT :
SELECT 'O', 1 SortOrder UNION ALL SELECT 'R', 2 UNION ALL SELECT 'D', 3 UNION ALL SELECT 'E', 4 UNION ALL SELECT 'R', 5 ORDER BY SortOrder
Cette requête triera explicitement les résultats dans l'ordre "O-R-D-E-R". Veuillez noter que l'ajout de la colonne SortOrder n'est nécessaire que si l'ordre souhaité est différent de l'ordre par défaut (qui n'est pas défini dans ce cas).
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!