Mysql SQL-转置一列并从径向列-wordpress表wp_usermeta中获取值

Mysql SQL-转置一列并从径向列-wordpress表wp_usermeta中获取值,mysql,sql,wordpress,pivot,aggregate-functions,Mysql,Sql,Wordpress,Pivot,Aggregate Functions,我不太擅长SQL和Wordpress。我在wordpress上制作了一些表单,当数据被添加时,所有的值都被插入到这个wordpress表中 该表的名称为wp_usermeta,并以这种方式组成 umeta_id-用户_id-元键-元值 现在,我已使用此sql代码将该表复制到一个新表中 创建表elaborazione_Meta_User_dataLIKEwp_usermeta; 插入到elaborazione\u Meta\u User\u数据中SELECT*FROMwp\u usermeta

我不太擅长SQL和Wordpress。我在wordpress上制作了一些表单,当数据被添加时,所有的值都被插入到这个wordpress表中

该表的名称为wp_usermeta,并以这种方式组成 umeta_id-用户_id-元键-元值

现在,我已使用此sql代码将该表复制到一个新表中 创建表
elaborazione_Meta_User_data
LIKE
wp_usermeta
; 插入到
elaborazione\u Meta\u User\u数据中
SELECT*FROM
wp\u usermeta

通过这种方式,我可以在不丢失数据的情况下进行任何“修改”

我的目标是从这种情况开始

到了这个地步

我知道我必须转换一些东西,但我现在知道怎么做了

其他有助于解决此问题的信息:

  • 如果有一种方法可以“识别”此表中用户的ID,那么创建sql代码可能应该很简单
  • meta_键也一样。这些应该是新列
  • 列中的数据应该由meta_value中的值填充
  • 在“相同值”的情况下,要“更新”并在代码末尾查看的值应该是usermeta_ID中值较高的值
  • 下一次,我将从一开始就将所有数据添加到新表中,以防止出现此问题

  • 您可以使用mysql的
    GROUP\u CONCAT
    函数来完成这一任务。查看此链接可获得有关如何使用它的深入教程

    您可以使用mysql的
    GROUP\u CONCAT
    功能来完成这项任务。查看此链接可获得有关如何使用它的深入教程

    以条件聚合为轴心:

    select user_id, 
        max(case when meta_key = 'State' then meta_value end) state,
        max(case when meta_key = 'Addresss' then meta_value end) address,
        max(case when meta_key = 'House_address1' then meta_value end) house_address1,
        max(case when meta_key = 'type_house1' then meta_value end) type_house1,
        max(case when meta_key = 'House_address2' then meta_value end) house_address2,
        max(case when meta_key = 'type_house2' then meta_value end) type_house2
    from wp_usermeta
    group by user_id
    

    您可以使用条件聚合进行透视:

    select user_id, 
        max(case when meta_key = 'State' then meta_value end) state,
        max(case when meta_key = 'Addresss' then meta_value end) address,
        max(case when meta_key = 'House_address1' then meta_value end) house_address1,
        max(case when meta_key = 'type_house1' then meta_value end) type_house1,
        max(case when meta_key = 'House_address2' then meta_value end) house_address2,
        max(case when meta_key = 'type_house2' then meta_value end) type_house2
    from wp_usermeta
    group by user_id