Задать вопрос
@its2easyy

Как исправить SQL запрос для получения минимального значения мета поля только опубликованных постов?

Есть запрос, который получает минимальное значение поля project_price
global $wpdb;
	$meta = '_project_price';
	$query = $wpdb->prepare(
		"SELECT min( cast( meta_value as UNSIGNED ) ) FROM {$wpdb->postmeta} WHERE meta_key='%s'",
		$meta
	);
	$result =  $wpdb->get_var( $query );

Считает правильно, но при этом учитывает ревизии постов. Как доработать запрос, чтобы учитывались только опубликованные посты?
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Loftschool
    Комплексное обучение PHP
    6 недель
    Далее
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
  • beONmax
    Профессия WordPress разработчик
    3 месяца
    Далее
Решения вопроса 1
@dzhebrak
Сделайте join таблицы wp_posts и в where добавьте wp_posts.post_type != "revision"

Получится примерно так:
SELECT min( cast( meta_value as UNSIGNED ) ) FROM {$wpdb->postmeta} LEFT JOIN {$wpdb->posts} ON {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id WHERE meta_key='%s' and {$wpdb->posts}.post_type != "revision"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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