Отправленный вами запрос состоит в сортировке по строковому выражению, а не по имени столбца или позиции. Либо используйте кавычки для цитирования, либо убирайте кавычки:
SELECT * FROM forums ORDER BY `posts` DESC
или, может быть,
SELECT * FROM forums ORDER BY posts DESC
Объяснит, почему переключение между ASC и DESC не имеет никакого эффекта.
Первоначальный ответ был:
Порядок сортировки, который вы описываете, предполагает, что значения INT на самом деле хранятся как символьный тип (или могут быть преобразованы в символ перед сортировкой).
Проверьте, храните ли вы данные в числовом или символьном виде. Если возможно, используйте числовой тип, тогда естественный порядок сортировки будет таким, как вам требуется. Если вы не можете изменить базовый тип данных на INT, то вы можете сделать это в своем запросе (например, используя CAST ), возможно, за счет производительности.