SQL - 转置一列并从相邻列中获取值 - wordpress table wp_usermeta
SQL - transpose a column and grab the value from the adiacent column - wordpress table wp_usermeta
我对 SQL 和 Wordpress 不是很熟练。我在 wordpress 上制作了一些表格,当添加数据时,所有值都插入到这个 Wordpress table
table的名字是wp_usermeta,是这样组成的
umeta_id - user_id - meta_key - meta_value
现在我已经使用此 sql 代码将 table 复制到一个新的
创建 TABLE elaborazione_Meta_User_data
喜欢 wp_usermeta
;
插入 elaborazione_Meta_User_data
SELECT * 来自 wp_usermeta
这样我可以在不丢失数据的情况下进行任何“修改”
我的目标就是从这个情况入手
走到这一步
我明白我必须转置一些东西,但我现在知道该怎么做了。
应该有助于解决此问题的其他信息:
- 如果有一种方法可以“识别”此 table 中用户的 ID,那么创建 sql 代码
应该很简单
- meta_key 相同。这些应该是新列
- 列中的数据应由 meta_value
中的值填充
- 在“相同值”的情况下,要“更新”的值和在代码末尾看到的值应该是 usermeta_ID
中具有更高值的值
- 下次我会从头开始在一个新的table中添加所有数据,以防止出现此问题
您可以使用 mysql 的 GROUP_CONCAT
函数来完成此操作。查看此 link 以获得有关如何使用它的深入教程。 https://ubiq.co/database-blog/transpose-rows-columns-dynamically-mysql/
您使用条件聚合进行透视:
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
我对 SQL 和 Wordpress 不是很熟练。我在 wordpress 上制作了一些表格,当添加数据时,所有值都插入到这个 Wordpress table
table的名字是wp_usermeta,是这样组成的 umeta_id - user_id - meta_key - meta_value
现在我已经使用此 sql 代码将 table 复制到一个新的
创建 TABLE elaborazione_Meta_User_data
喜欢 wp_usermeta
;
插入 elaborazione_Meta_User_data
SELECT * 来自 wp_usermeta
这样我可以在不丢失数据的情况下进行任何“修改”
我的目标就是从这个情况入手
走到这一步
我明白我必须转置一些东西,但我现在知道该怎么做了。
应该有助于解决此问题的其他信息:
- 如果有一种方法可以“识别”此 table 中用户的 ID,那么创建 sql 代码 应该很简单
- meta_key 相同。这些应该是新列
- 列中的数据应由 meta_value 中的值填充
- 在“相同值”的情况下,要“更新”的值和在代码末尾看到的值应该是 usermeta_ID 中具有更高值的值
- 下次我会从头开始在一个新的table中添加所有数据,以防止出现此问题
您可以使用 mysql 的 GROUP_CONCAT
函数来完成此操作。查看此 link 以获得有关如何使用它的深入教程。 https://ubiq.co/database-blog/transpose-rows-columns-dynamically-mysql/
您使用条件聚合进行透视:
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