@Tarrissarh

Что не так в сортировке Wordpress/MySQL?

Есть БД Wordpress. В таблице postmeta есть метаданные дата (date, формат YYYYmmdd) и название (name), по этим полям есть сортировка на сайте. В основном эти поля создаются/заполняются с помощью апи и функций плагина acf(update_field, for example), но можно создать и вручную. Проблема следующего характера:
Создали к пример 100 записей с помощью api, а следом 10 записей вручную сделали.
При сортировке по убыванию (DESC) происходит как бы 2 сортировки для апи и ручной, т.е. в начале идут все даты или название по убыванию, которые созданы вручную, а затем по убыванию для апи. и получается сортировка примерно такая (пример для даты):
5a79a93cf3f9a639750324.png
Для названия ситуация аналогичная.
Такую сортировку выдает не Wordpress, а MySQL в чистом виде, поэтому я не могу понять в чем дело.
Может кто сталкивался с подобной проблемой?
MySQL запрос
SELECT pm.meta_value FROM postmeta pm
WHERE pm.meta_key = 'name' # or date
ORDER BY pm.meta_value DESC
# Если для даты еще помогает ORDER BY pm.meta_value+0 DESC, то вот для названия...
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Обратите внимание на различное форматирование. У вас явно разные данные пишутся, в особенности проверьте пробельные символы.
Сделайте
select date, hex(date) from tablename;
И по табличке ASCII сравните, что у вас в начале идёт лишнее
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov Куратор тега MySQL
Web developer
(date, формат YYYYmmdd)

Неправда. Формат date - это YYYY-mm-dd. А у вас непонятно что (строка?).

Укажите точную структуру таблицы и SQL с сортировкой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы