У меня есть этот запрос из таблицы WordPress.Я строю API вне WordPress с другой базой данных.Я пытаюсь получить продукты instock только .
Так что это - максимальный случай, когда - может дать два значения, instock или outofstock .
max( CASE WHEN pm.meta_key = "_stock_status" and product_id = pm.post_id THEN pm.meta_value END ) as product_stock_status
Как я могу получить только значения запасов в этом запросе?
Полный запрос:
SELECT product_id, product_language, product_name,
max( CASE WHEN pm.meta_key = "_price" and product_id = pm.post_id THEN pm.meta_value END ) as product_price,
max( CASE WHEN pm.meta_key = "_stock_status" and product_id = pm.post_id THEN pm.meta_value END ) as product_stock_status
FROM search_table
INNER JOIN postmeta pm ON product_id = pm.post_id
WHERE product_language LIKE "en"
GROUP BY product_id
ORDER BY RAND() LIMIT 15
Я надеюсь получить случайные товары с product_stock_status instock .
РЕДАКТИРОВАТЬ: РЕШЕНИЕ
Используйте предложение HAVING после GROUP BY, т.е. HAVING product_stock_status = 'instock' - Ник
SELECT product_id, product_language, product_name,
max( CASE WHEN pm.meta_key = "_price" and product_id = pm.post_id THEN pm.meta_value END ) as product_price,
max( CASE WHEN pm.meta_key = "_stock_status" and product_id = pm.post_id THEN pm.meta_value END ) as product_stock_status
FROM search_table
INNER JOIN postmeta pm ON product_id = pm.post_id
WHERE product_language LIKE "en"
GROUP BY product_id
HAVING product_stock_status = 'instock'
ORDER BY RAND() LIMIT 15