Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Unterabfrage im ORDER BY-Feld. (ohne Inner Join)

Ich sehe keine Möglichkeit, dies direkt mit ORDER BY FIELD zu tun.

Ich frage mich jedoch, ob Sie einen JOIN gegen die Metatabelle und dann ORDER BY ein FIND_IN_SET.

ausführen könnten

Dies wurde nicht getestet, gibt Ihnen aber hoffentlich eine Idee:-

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)

Möglicherweise ist das FIND_IN_SET auf dem JOIN nicht erforderlich