Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql order by with union nie działa

Z MySQL dokumentacja :

W zasadzie jedyny raz ORDER w unii przyda się, jeśli używasz LIMIT również.

Więc jeśli zapytanie wyglądało tak:

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

Wtedy zobaczysz pierwszych dziesięć rekordów, które zostaną zwrócone na podstawie tej kolejności, ale niekoniecznie będą one wyświetlane w kolejności.

AKTUALIZACJA:

Spróbuj tego -

(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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BŁĄD 2006 (HY000):Serwer MySQL zniknął

  2. Jak uzyskać nazwę nadzorcy zamiast UserID + INNER JOIN w MYSQL?

  3. Uzyskaj nazwę kolumny zamiast wartości kolumny

  4. Mysql policz wystąpienia podciągu, a następnie uporządkuj według

  5. Symfony 2:INNER JOIN na niepowiązanej tabeli z konstruktorem zapytań doktryny