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

mysql ordre af med union ser ikke ud til at virke

Fra MySQL dokumentation :

Dybest set den eneste gang en ORDER i en fagforening vil være nyttig, hvis du bruger LIMIT også.

Så hvis du forespørger var sådan her:

(SELECT * FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only three doors%" OR `joke` LIKE "%only three doors%") ORDER BY `ups` DESC,`downs` ASC LIMIT 10)
UNION ...

Så ville du se de første ti poster, der ville blive returneret baseret på den rækkefølge, men de ville ikke nødvendigvis blive vist i rækkefølge.

OPDATERING:

Prøv dette -

(SELECT *, 1 as ob FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only three doors%" OR `joke` LIKE "%only three doors%") )
UNION
(SELECT *, 2 as ob FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only%" OR `joke` LIKE "%only%") )
UNION
(SELECT *, 3 as ob FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%three%" OR `joke` LIKE "%three%") )
UNION
(SELECT *, 4 as ob FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%doors%" OR `joke` LIKE "%doors%"))
 ORDER BY `ob`, `ups` DESC,`downs` ASC LIMIT 0, 30


  1. Hvad er den bedste måde at bruge LEFT OUTER JOIN til at kontrollere, om der ikke findes relaterede rækker

  2. Relationelle vs. ikke-relationelle databaser – Del 1

  3. Opbygning af en MySQL eller MariaDB Database Cold Standby på Amazon AWS

  4. Forkert heltal (2147483647) er indsat i MySQL?