Я пытаюсь отсортировать объект SQLAlchemy ORM по полю, но с определенным порядком значений (который не является ни возрастающим, ни убывающим). Если бы я выполнял этот запрос в MySQL, он выглядел бы так;
SELECT letter FROM alphabet_table WHERE letter in ('g','a','c','k')
ORDER BY FIELDS( letter, 'g','a','c','k');
для вывода:
letter
------
g
a
c
k
Для SQLAlchemy я пробовал такие вещи:
session. query(AlphabetTable).filter(AlphabetTable.letter.in_(('g','a','c','k'))).order_by(AlphabetTable.letter.in_(('g','a','c','k')))
Что не работает... есть идеи? Это небольшой одноразовый постоянный список, и я мог бы просто создать таблицу с порядком, а затем присоединиться, но это кажется слишком сложным.