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

Podzapytanie MySQL w polu ORDER BY. (bez połączenia wewnętrznego)

Naprawdę nie widzę sposobu, aby zrobić to bezpośrednio za pomocą ORDER BY FIELD.

Zastanawiam się jednak, czy możesz wykonać JOIN względem tabeli meta, a następnie ORDER BY FIND_IN_SET.

Nie testowałem tego, ale mam nadzieję, że podsunie ci pomysł:-

SELECT * 
FROM `categories` 
INNER JOIN meta ON metakey = 'category_order' AND FIND_IN_SET(categories.ID,metavalue)
WHERE `parent` = '0' 
ORDER BY FIND_IN_SET(categories.ID,metavalue)

Prawdopodobnie FIND_IN_SET na JOIN nie jest konieczne



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Literały Unicode MySQL

  2. Zapytanie MySQL z operatorem „in”:dlaczego różne wyniki z cudzysłowami?

  3. Wyzwalacz MySQL pobiera aktualne zapytanie, które spowodowało uruchomienie wyzwalacza

  4. docker commit mysql nie zapisuje

  5. SQL Wstaw do tabeli nowe wiersze dla każdego pola w tej samej tabeli