sql >> Databáze >  >> RDS >> Mysql

Zdá se, že objednávka mysql pomocí unie nefunguje

Z MySQL dokumentace :

V podstatě jediný případ ORDER v unii bude užitečné, pokud používáte LIMIT také.

Takže pokud byl dotaz takto:

(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 ...

Pak byste viděli prvních deset záznamů, které by byly vráceny na základě tohoto pořadí, ale nemusí být nutně zobrazeny v pořadí.

AKTUALIZACE:

Zkuste toto -

(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. Fyzické replikační mechanismy v PostgreSQL

  2. mám aktivovat sdružování příkazů c3p0?

  3. Podmíněný počet SQL

  4. alter tabulka přidání cizího klíče se nezdaří