【发布时间】:2014-04-10 22:21:18
【问题描述】:
SELECT p.*,
GROUP_CONCAT(pm.meta_key ORDER BY pm.meta_key DESC SEPARATOR '||') as meta_keys,
GROUP_CONCAT(pm.meta_value ORDER BY pm.meta_key DESC SEPARATOR '||') as meta_values
FROM $wpdb->posts p
LEFT JOIN $wpdb->postmeta pm on pm.post_id = p.ID
WHERE p.post_type = 'item' and p.post_status = 'publish'
AND pm.meta_key = 'adtype'
AND pm.meta_value = '1'
GROUP BY p.ID
ORDER BY p.post_date_gmt DESC
LIMIT 0,10
我正在使用特殊的 WordPress 查询来获取 post 和 postmeta 数据,当我想在 postmeta 上添加额外的 WHERE 时遇到了问题。
这里我想限制 pm.meta_key adtype 等于 1 的结果。查询有效,但 var_dump() 显示它更改了连接 meta_keys 和 meta_values 组的值。
在我的结果中,我不再将 meta_keys 和 meta_values 作为串联结果,而是分别设置为“adtype”和“1”的 WHERE 值。
查询无需额外的 WHERE 子句即可工作,但我希望能够过滤结果。
【问题讨论】:
标签: php mysql sql wordpress group-concat