Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sous-requête MySQL dans le champ ORDER BY. (sans jointure interne)

Je ne vois pas vraiment comment le faire directement en utilisant ORDER BY FIELD.

Cependant, je me demande si vous pourriez faire un JOIN contre la méta table puis ORDER BY un FIND_IN_SET.

Pas testé cela, mais j'espère que cela vous donnera l'idée :-

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)

Peut-être que le FIND_IN_SET sur le JOIN n'est pas nécessaire