Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Subconsulta MySQL dentro do campo ORDER BY. (sem Inner Join)


Eu realmente não consigo ver uma maneira de fazer isso diretamente usando ORDER BY FIELD.

No entanto, gostaria de saber se você poderia fazer um JOIN contra a meta tabela e depois ORDER BY um FIND_IN_SET.

Não testei isso, mas espero que lhe dê a idéia:-
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)

Possivelmente o FIND_IN_SET no JOIN não é necessário