sql >> Database teknologi >  >> RDS >> Mysql

Hvordan laver man MYSQL-forespørgselsresultater ORDER BY condition?

For at få sorteringen i den rækkefølge, du ønsker, skal du bruge dine betingelser i ORDER BY, men brug DESC efter dem.

SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
    condition1 DESC,
    condition2 DESC,
    condition3 DESC

Hvis dette ikke virker, fordi din forespørgsel er mere kompleks, kan du bruge boolsk logik til at ændre din forespørgsel (A OR B OR C) AND D ind i (A AND D) OR (B AND D) OR (C AND D) så kan du bruge følgende forespørgsel:

SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
    condition1 AND static DESC,
    condition2 AND static DESC,
    condition3 AND static DESC

AND static er ikke nødvendigt her, fordi alle rækker returnerer det, men i et mere komplekst eksempel (hvor du også returnerer nogle rækker, som ikke er statiske), så skulle du gøre det på denne måde.



  1. Hvordan kører man SQL-script i MySQL?

  2. MySQL-korreleret underforespørgsel i JOIN-syntaks

  3. Er det muligt at dekrementere en variabel i MySQL?

  4. mysql stored-procedure:ud parameter