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önntenDies 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