#mysql #wordpress
#mysql #wordpress
Вопрос:
Я пытаюсь создать фильтр для фильтрации пользователей с несколькими параметрами. Я понимаю, что приведенный ниже запрос предназначен для post meta, но он работает так же, и его легче протестировать на моей стороне.
SELECT *
FROM wp_postmeta
WHERE (meta_key="_regular_price" AND meta_value="295")
AND (meta_key="_weight" AND meta_value="2.5")
Когда я выполняю приведенный выше код, я не получаю результатов, но если я изменяю AND между двумя наборами скобок на OR, он возвращает оба результата, и из этого я вижу, что есть по крайней мере 1 результат (post_id), который находится в обоих.
Что я здесь делаю не так?
Комментарии:
1. Попробуйте ИЛИ вместо И, потому что невозможно, чтобы один из них
meta_key
был одновременно_regular_price
И_weight
Ответ №1:
Вы можете попробовать ниже —
SELECT *
FROM wp_postmeta where (meta_key,meta_value) in (("_regular_price","295"),("_weight","2.5"))
Комментарии:
1. Это возвращает тот же результат, если я изменяю AND между двумя наборами скобок на OR. Желаемый результат, который я ищу, вернет только одну или 2 записи, которые соответствуют обоим параметрам