首页 > 解决方案 > 如何使用 MySQL 计算 WordPress 中的元值以显示到两列?

问题描述

我正在运行 SQL 命令来计算一些 Wordpress 元值,但我得到了我想要的不同形式

select 
    sum(um.meta_value = '< 2000') '2000', 
    sum(um.meta_value = '2000-3499') '2000-3499', 
    sum(um.meta_value = '3500-4999') '3500-4999', 
    sum(um.meta_value = '5000-7499') '5000-7499', 
    sum(um.meta_value = '7500-9999') '7500-9999', 
    sum(um.meta_value = '10000 >') '10000>'
        from wp_usermeta um
        join wp_users u on u.id = um.user_id
        where um.meta_key = 'income-range'

我得到的输出:

我得到的输出

我需要它显示如下:

我想要的输出,忽略第二列


select 
    um.meta_value,
    SUM(CASE WHEN (um.meta_value = '< 2000') THEN 1  END) AS '<2000',
    SUM(CASE WHEN (um.meta_value = '2000-3499') THEN 1 END) AS '2000-3499',
    SUM(CASE WHEN (um.meta_value = '3500-4999') THEN 1 END) AS '3500-4999',
    SUM(CASE WHEN (um.meta_value = '5000-7499') THEN 1 END) AS '5000-7499',
    SUM(CASE WHEN (um.meta_value = '7500-9999') THEN 1 END) AS '7500-9999',
        SUM(CASE WHEN (um.meta_value = 'c') THEN 1 END) AS '7500-9999'


        from wp_usermeta um 
        left join wp_users u on u.id = um.user_id
        where um.meta_key = 'income-range'
    GROUP BY um.meta_value


我也不喜欢这个输出,所以它必须是两列:

我也不喜欢这个查询输出

标签: phpmysqlsqlwordpresspivot

解决方案


我基本上对特定的元键进行了计数,并按元值分组。


SELECT meta_value, COUNT( * ) c FROM wp_usermeta um WHERE meta_key = 'income-range' GROUP BY meta_value

推荐阅读