SQLAlchemy ORDER BY FIELD()

Я пытаюсь отсортировать объект 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')))

Что не работает... есть идеи? Это небольшой одноразовый постоянный список, и я мог бы просто создать таблицу с порядком, а затем присоединиться, но это кажется слишком сложным.

8
задан Adam Morris 16 September 2011 в 10:18
поделиться