mysql - 如何在我的 SELECT 中过滤 GROUP_CONCAT

标签 mysql group-concat

我试图从 WordPress 中选择(所有多个)评论,这些评论与 GROUP_CONCAT 的帖子(wp_comments.comment_content)相关,但我只想选择那些不包含文本字符串“status”的评论。如果根本没有评论,或者只有包含“状态”的评论,我仍然希望在结果中看到这些记录,只是没有得到任何回复评论

当我尝试在完整查询的末尾添加类似于 [WHERE wp_comments.comment_content NOT LIKE "%status%"] 的条件时,仅包含包含“status”的评论的记录根本不会显示,我仍然需要获取这些记录,只是没有注释。

我想尝试类似下面的版本,但这会引发错误并且根本不会吐出任何数据。 (顺便说一句,除了评论选择部分之外,整个查询按预期工作。)。

也许我在错误的位置加入了 wp_comments 表,使用了错误的联接,没有使用格式正确的嵌套 SELECT 或类似的内容,也许它最后需要一个单独的 SELECT,这样我就可以在不影响整体选择哪些记录的方式..不确定..

知道我做错了什么或如何解决这个问题吗?

这是我的疑问,提前感谢您的指点!

select wp_woocommerce_order_itemmeta.meta_value as firstwoometavalue, 
wp_postmeta.meta_value as firstwpmetavalue, Y.meta_value as ymetavalue, 
Z.meta_value as zmetavalue, X.meta_value as xmetavalue, 
(GROUP_CONCAT(wp_comments.comment_content) as commentcontent 
WHERE wp_comments.comment_type = "order_note" AND 
wp_comments.comment_content NOT LIKE "%status%")
FROM wp_postmeta 
left JOIN wp_postmeta as Y
ON wp_postmeta.post_id = Y.post_id
left JOIN wp_posts
ON wp_postmeta.post_id = wp_posts.ID
left JOIN wp_woocommerce_order_items
ON wp_woocommerce_order_items.order_id = wp_posts.ID
left JOIN wp_woocommerce_order_itemmeta
ON wp_woocommerce_order_itemmeta.order_item_id = wp_woocommerce_order_items.order_item_id
left JOIN wp_woocommerce_order_itemmeta as Z
ON wp_woocommerce_order_itemmeta.order_item_id = Z.order_item_id
left JOIN wp_woocommerce_order_itemmeta as X
ON wp_woocommerce_order_itemmeta.order_item_id = X.order_item_id
left JOIN wp_comments
ON wp_comments.comment_post_ID = wp_posts.ID
where 1=1
AND wp_woocommerce_order_itemmeta.meta_key ="Adults"
AND wp_postmeta.meta_key ="_billing_first_name"
AND Y.meta_key ="_billing_last_name"
AND Z.meta_key ="Booking Type"
AND Z.meta_value LIKE "%'.$showlocation.'%"
AND X.meta_key ="Booking Date"
AND X.meta_value = "'.$showdate.'"
AND wp_posts.post_status ="wc-completed" 
GROUP BY wp_posts.ID

最佳答案

这有效

 SELECT 
wp_woocommerce_order_itemmeta.meta_value AS Adults,
wp_postmeta.meta_value AS FirstName,
jn_postmeta_lastname.meta_value AS LastName,
jn_woocommerce_order_itemmeta_location.meta_value AS Location,
jn_woocommerce_order_itemmeta_date.meta_value AS ShowDate,
(SELECT 
        GROUP_CONCAT(wp_comments.comment_content)
    FROM
        wp_comments
    WHERE
        wp_comments.comment_content NOT LIKE '%status%'
            AND wp_comments.comment_post_ID = wp_posts.ID) Notes
 FROM
wp_postmeta
    LEFT JOIN
wp_postmeta AS jn_postmeta_lastname ON wp_postmeta.post_id = jn_postmeta_lastname.post_id
    LEFT JOIN
wp_posts ON wp_postmeta.post_id = wp_posts.ID
    LEFT JOIN
wp_woocommerce_order_items ON wp_woocommerce_order_items.order_id = wp_posts.ID
    LEFT JOIN
wp_woocommerce_order_itemmeta ON wp_woocommerce_order_itemmeta.order_item_id = wp_woocommerce_order_items.order_item_id
    LEFT JOIN
wp_woocommerce_order_itemmeta AS jn_woocommerce_order_itemmeta_location ON wp_woocommerce_order_itemmeta.order_item_id = jn_woocommerce_order_itemmeta_location.order_item_id
    LEFT JOIN
wp_woocommerce_order_itemmeta AS jn_woocommerce_order_itemmeta_date ON wp_woocommerce_order_itemmeta.order_item_id = jn_woocommerce_order_itemmeta_date.order_item_id
    LEFT JOIN
wp_comments ON wp_comments.comment_post_ID = wp_posts.ID
WHERE
1 = 1
    AND (wp_postmeta.meta_key = '_billing_first_name'
    AND jn_postmeta_lastname.meta_key = '_billing_last_name'
    AND wp_woocommerce_order_itemmeta.meta_key = 'Adults'
    AND jn_woocommerce_order_itemmeta_location.meta_key = 'Booking Type'
    AND jn_woocommerce_order_itemmeta_location.meta_value LIKE "%'.$showlocation.'%"
    AND jn_woocommerce_order_itemmeta_date.meta_key = 'Booking Date'
    AND jn_woocommerce_order_itemmeta_date.meta_value = "'.$showdate.'"
    AND wp_posts.post_status = 'wc-completed'
GROUP BY wp_posts.ID

关于mysql - 如何在我的 SELECT 中过滤 GROUP_CONCAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33713603/

相关文章:

sql - 循环遍历并使用 UNION_ALL 组合模式/表

mysql - 3 MySQL表结构的GROUP_CONCAT?

python - 我的 Flask 应用程序中的 "The view function did not return a valid response."错误在哪里?

php - 在 SQL 语句中安全使用用户特定顺序的推荐方法

php - 在 cpanel 的 phpmyadmin 服务器中找不到复制菜单

php - Laravel 5 中的 group_concat() 问题

mysql - 将一个奇怪的 Mysql 查询更改为使用 group_concat 的 Postgresql

php - 在 WordPress 中按开始日期然后按开始时间查询

mysql - 无法添加外键

mysql - 子查询中的 GROUP_CONCAT 仅返回一行