Enregistre les enregistrements de base de données de tri multi-valeurs dans un ordre spécifique
] Supposons que vous ayez une table avec une clé d'index et un champ non index x_field
. Vous devez trouver tous les enregistrements avec des valeurs spécifiques et les renvoyer et trier les résultats en fonction de plusieurs valeurs dans un ordre spécifique.
par exemple, si vous avez le tableau suivant:
x_field | |
---|---|
a | |
124 | a |
] | 124a |
125 | a|
126 | |
&&] | 127|
128 | |
b | b | &&K ] x
131 | |
132 | |
133 | |
134 | |
p | 135 |
x_field = 'f', 'p', 'i', 'a' | :|
---|---|
x_field | |
&&K ] 135 | i |
123 | a |
124 | a |
125 | |
129 | |
SÉLECTIONNER * De la table Où je ne suis pas en (126) Ordre par x_field 'f', 'p', 'i', 'a' |
case
pour attribuer une valeur numérique à chaque valeurSELECT *
FROM table
WHERE id NOT IN (126)
ORDER BY x_field 'f', 'p', 'i', 'a'
... OÙ x_field dans ('f', 'p', 'i', 'a') ... Commander Cas x_field Quand 'f' puis 1 Quand 'p' puis 2 Quand «je» puis 3 Quand «a» puis 4 Else 5 - Pour les valeurs de secours pas dans la clause in (par exemple: x_field = 'b') End, id
Cette requête attribue la valeur 1 à la valeur
x_field égale à «f», valeur 2 à la valeur égale à «p», valeur 3 à la valeur égale à «i», et valeur 4 à la valeur égale à «a». Pour les valeurs non dans la clause
dans
...
WHERE
x_field IN ('f', 'p', 'i', 'a') ...
ORDER BY
CASE x_field
WHEN 'f' THEN 1
WHEN 'p' THEN 2
WHEN 'i' THEN 3
WHEN 'a' THEN 4
ELSE 5 -- 对不在 IN 子句中的值(例如:x_field = 'b')的回退值
END, id
Cette méthode garantit que les résultats sont triés dans l'ordre souhaité, même si les valeurs x_field ne sont pas dans l'ordre descendant / ascendant.
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