Comment faire de requête MYSQL résultats de la COMMANDE PAR les conditions de commande?
Ma chaîne de requête est comme:
SELECT ... FROM maintable
LEFT JOIN table1 on (maintable.id = table1.idx)
LEFT JOIN table2 on (table1.idy = table2.idy)
LEFT JOIN table3 on (table2.idz = table3.idz)
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
//condition1 & condition2 & condition3 are kind of
table3.idz = 101, table3.idz = 3, maintable.id IN (1,2,3,4), and so on
Les résultats que je veux entrées qui répondent condition1
être renvoyés en premier, puis les entrées qui remplissent condition2
, et enfin les entrées qui remplissent condition3
. Des idées?
- Sont vos conditions distinctes? Si non, que si une entrée répond à plusieurs conditions? Par exemple, si une entrée, remplit les conditions 1 et 3, comment devrait-il être triés par rapport à une entrée qui satisfait aux conditions 1 et 2?
- pas de limite ici, donc je pense que peut-être d'abord répondre à la première de retour?
Vous devez vous connecter pour publier un commentaire.
Pour obtenir le tri dans l'ordre que vous souhaitez, utilisez vos conditions dans l'ORDRE, mais l'utilisation
DESC
après eux.Si cela ne fonctionne pas parce que votre question est plus complexe, vous pouvez utiliser la logique booléenne pour modifier votre requête
(A OR B OR C) AND D
en(A AND D) OR (B AND D) OR (C AND D)
ensuite, vous pouvez utiliser la requête suivante:La
AND static
n'est pas nécessaire ici car toutes les lignes de retour, mais dans un exemple plus complexe (où vous pouvez également revenir quelques lignes qui ne sont pas statiques) alors que vous auriez à le faire de cette façon.DESC
est nécessaire!Cela devrait fonctionner:
par exemple