Préserver l'ordre spécifié dans mysql "dans" requêtes
Lors de la question des données à l'aide de MySQL, l'opérateur "in" vous permet de sélectionner des enregistrements basés sur un ensemble de valeurs. Cependant, il est important de noter que le comportement par défaut de ces requêtes ne maintient pas l'ordre des valeurs spécifiées.
Problème:
dans un scénario où vous avez un tableau avec une clé primaire inscrite automatiquement basée sur la clé primaire sur la commande principale. Cela peut être problématique si vous souhaitez préserver la séquence des résultats.
Solution:
Pour réaliser l'ordre souhaité, vous pouvez utiliser la fonction Field () en conjonction avec la clause Order By. La fonction Field () attribue des positions aux valeurs en fonction de l'ordre dans lequel ils apparaissent dans sa liste d'arguments. Voici un exemple:
SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
Dans cette requête, la liste d'arguments de champ () spécifie la séquence dans laquelle vous voulez que les résultats apparaissent. The ORDER BY clause sorts the results based on the positions assigned by FIELD().
Explanation:
The FIELD() function assigns the following positions to the values:
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3