Добавить проверку на метаполе
У меня есть запрос к бд который получает среднее значение рейтинга, вот он
$rating = $wpdb->get_var( "
SELECT AVG(cm.meta_value) as avg
FROM $wpdb->commentmeta as cm
JOIN $wpdb->comments as c
ON cm.comment_id = c.comment_ID
WHERE c.comment_post_ID IN ($post_id) AND cm.meta_key = 'rating'
" );
Но оно подтягивает рейтинг всех записей, также у меня есть мета поле comment_email_verify_status, как можно получить значение рейтинга исключив записи у которых это мета поле не равно единице comment_email_verify_status != 1
То есть к запросу нужно добавить условие если comment_email_verify_status = 1
Ответы (1 шт):
Я не силён в SQL запросах, но для себя с горем пополам делаю. Тебе посоветую вот что. У тебя либо в условиях объединения JOIN должно быть указано, что ключ метаполя comment_email_verify_status равен 1, Либо в условиях ниже в WHERE. Всё через тестирование и знание построения запросов. Опять же я могу посоветовать тебе сделать запрос через query запрос, с его анализом. Типа
$p_args = array(
'post_type' => 'product',
'post_status' => 'publish',
'numberposts' => -1,
'meta_query' => array(
array(
'key' => '_barcode',
'value' => array(''),
'compare' => 'IN'
)
)
);
$results = new WP_Query( $p_args );
echo $results->request;
Тут смотрю товары у которых НЕТ метаполя '_barcode' (штрихкод), точнее оно пустое, нет значения 'value'.