Можно изменить тип_страницы на ENUM («1», «3», «2», «0») (обратите внимание на порядок).Внутренне MySQL свяжет индекс 0 со значением 1, индекс 1 со значением 3 и т. Д. И т. Д.
Если вы затем упорядочите по типу ASC page_type, он будет упорядочен в том порядке, в каком вы хотите, в соответствии с порядком ENUM.ключ, а не фактический текст, к которому относится каждый ключ.
В зависимости от того, какой тип page_type действительно ссылается на вас, вы всегда можете вместо этого использовать текстовые дескрипторы, например ENUM («новости», «что-то еще», .....) - вы не предоставили никакой информации о том, на что эти ссылки ссылаютсяпоэтому не могу дать дальнейшие рекомендации по этому вопросу.
Более подробную информацию о enum можно найти здесь: http://dev.mysql.com/doc/refman/5.0/en/enum.html (прокрутите вниз до места начала абзаца "Значения ENUM отсортированы в соответствии с" ....
Единственным недостатком является то, что вам нужно будет обновлять схему таблицы каждый раз, когда вы добавляете новый тип page_type, однако я бы предположил, что из-за имени поля это не будет распространенным явлением, поэтому это может быть жизнеспособным вариантом.