У меня есть перечисление: ENUM('alpha', 'beta', 'gamma', 'delta', 'omega')
Могу ли я сравнивать перечисления MySQL?
Если я сортирую таблицу в этом столбце, я получаю их в правильном порядке, указанном выше.
Однако я не могу найти способ выбрать подмножество этих, например. все до дельты. Использование WHERE status < 'delta'
возвращает только альфа и бета, а не гамма. Кажется, MySQL использует сравнение строк, а не сравнение индекса перечислений.
Я мог бы использовать индексные числа - то есть WHERE status < 4
- но это немного запах кода (магические числа) и может сломаться, если я вставляю новые значения в перечисление.
Это звучит как противоположность моего вопроса. Я хотел, чтобы заказ был числовым, и все в порядке. Моя проблема заключалась в предложении WHERE. Хотя, возможно, есть способ конвертировать поле ENUM в числовое значение и использовать его? Теперь для меня это не имеет значения, я спросил об этом почти год назад, и я даже не помню, для чего это было ... – DisgruntledGoat 2009-10-13 15:35:41