Wordpress: Как сравнить 2 значения с плавающей запятой в столбце meta_value? - PullRequest
1 голос
/ 03 февраля 2010

У меня есть около 100 сообщений в WordPress, все с meta_key цены и значения.

Как бы я занялся поиском по всем сообщениям со значением, например, между 23,00 и 41,00?

Я знаю, что meta_compare обрабатывает meta_value как строку, поэтому я не могу использовать это для решения моей проблемы.У кого-нибудь есть какие-нибудь подсказки?Спасибо

1 Ответ

3 голосов
/ 08 февраля 2010

Я бы попытался реализовать фильтр posts_where и изменить там запрос. Он вызывается сразу после добавления мета-сравнения и позволяет вам изменить часть запроса WHERE. Вам необходимо заменить все экземпляры вашего мета-ключа на CAST(meta_key AS DECIMAL(5,2)). Я полагаю, что мета-ключ имеет префикс имени мета-таблицы, поэтому проверьте это. Вам нужно будет найти способ передать два meta_value параметра, если вы хотите выполнить запрос BETWEEN, но вы можете объединить их с запятой и разделить их в своем фильтре. До тех пор, пока из вашего фильтра выйдет правильное предложение SQL where-clause, все должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...