作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨,我有一个令人困惑的查询,这是查询
SELECT meta_value, meta_count, post_id
FROM wp_post_meta
GROUP BY IF(ISNULL(target_key), '', target_key)
ORDER BY `meta_count` DESC
LIMIT 30
有些目标键是空的,但有些是值存在,如果 target_key 是值存在,我怎么能得到结果使它 GROUP BY 但如果空 GROUP BY 禁用
谁能帮帮我?
最佳答案
当 target_key
为 null
时,您可以使用每条记录的唯一值作为分组依据,这样这些记录将各自归入自己的组。例如,如果 post_id
是表的键,您可以按它进行分组。如果键可能具有与 target_key
字段相同的值,您可能需要为不同的值添加前缀:
GROUP BY IF(ISNULL(target_key), 'x' + post_id, 'y' + target_key)
请注意,您的查询是根据 target_key
进行分组的,但是您选择的是其他字段而不使用聚合(最小值、最大值、计数等),因此结果将是任何值每个组内的任意记录。如果这些值对于每个组中的所有记录都不相同,则结果不可预测。
关于mysql - 如何在 GROUP BY 上设置 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11443314/
我是一名优秀的程序员,十分优秀!