Trier les résultats des requêtes PostgreSQL en fonction de l'ordre des valeurs dans la liste IN
Dans PostgreSQL, la structure IN dans la clause WHERE vous permet de spécifier un ensemble de valeurs qui correspondent à une colonne. Cependant, trier les lignes de résultats en fonction de l'ordre des valeurs dans la liste IN peut être un défi.
Heureusement, PostgreSQL 8.2 introduit la structure VALUES(), qui vous permet de créer une table virtuelle contenant des valeurs et un ordre spécifiques. Cela nous permet de trier les résultats en fonction de l'ordre des valeurs dans la liste IN.
Pour y parvenir, utilisez la syntaxe suivante :
<code class="language-sql">select c.* from comments c join ( values (1,1), (3,2), (2,3), (4,4) ) as x (id, ordering) on c.id = x.id order by x.ordering</code>
Dans cet exemple, nous utilisons la structure VALUES() pour créer une table virtuelle nommée "x". Chaque ligne de cette table virtuelle représente une valeur dans la liste IN et son ordre correspondant. Nous joignons ensuite la table « commentaires » avec la table « x » basée sur la colonne « id » et trions les résultats par la colonne « classement ». Cela garantit que les lignes récupérées sont classées dans l'ordre spécifié dans la liste IN : (1,3,2,4).
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!