mysql - 在 where 子句中检查 max( CASE WHEN ) 的值 - 编辑:HAVING CLAUSE
问题描述
我有这个来自 wordpress 表的查询。我正在用其他数据库在 wordpress 之外构建一个 api。我只想让产品进货 。
所以这个 - max case when - 可以给出两个值,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的随机产品。
编辑:解决方案
在 GROUP BY 之后使用 HAVING 子句,即 HAVING product_stock_status = 'instock' – Nick
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
解决方案
推荐阅读
- python - 如何将文本文件拆分为嵌套数组?
- html - 我可以让 HTML 元素仅在其父容器内充当块元素,但在其外部充当内联块元素吗?
- visual-studio-code - VSCode API 检查当前行是否为注释
- c++ - C++多线程比单线程慢
- reactjs - 使用 useState 钩子通过 onClick 在 React 中的 Icon 更改组件的 css 类
- copy-paste - Tabulator copyToClipboard 方法未按预期工作
- python - 如何找到一个数字属于哪个范围
- ruby-on-rails - Gem::InstallError: byebug 需要 Ruby 版本 >= 2.4.0
- jquery - 这里的“winningPlayer”包含一个文本,我想让它在特定条件下出现时显示为粗体。有什么办法可以做到吗?
- javascript - 更改数组中图像的位置