我有一个表(旧的WP导出postmeta表包含旧的自定义字段),需要组合多行并清理它们:
post_id | company | meta_key | meta_value
11111 AAA street boulevard 1
11111 AAA tel 12345678
11111 AAA email info@aaa.com
11111 AAA website http://aaa.com
22222 BBB street boulevard 2
22222 BBB tel 47334949
22222 BBB email info@bbb.com
22222 BBB website http://bbb.com
我需要它看起来如下:
newtable
post_id company street tel email website
11111 AAA boulevard 1 1234567 info@aaa.com http://aaa.com
22222 BBB boulevard 2 47334949 info@bbb.com http://bbb.com
我查看了所有论坛帖子并尝试了几十种语法,没有工作,我找不到错误。我甚至尝试使用另一个表中的where条件运行插入语法,因为ID需要保持不变,例如:
INSERT INTO newtable (street) VALUES (meta_value) WHERE oldtable.meta_key = 'street' AND oldtable.meta_key = newtable.post_id
基本上某些字段需要成为列,并且需要将某些字段插入到这些字段中。
非常感谢任何提示或提示
答案 0 :(得分:1)
SELECT company
, MAX(CASE WHEN meta_key = 'email' THEN meta_value END) email
, MAX(CASE WHEN meta_key = 'street' THEN meta_value END) street
, MAX(CASE WHEN meta_key = 'tel' THEN meta_value END) tel
, MAX(CASE WHEN meta_key = 'website' THEN meta_value END) website
FROM eav
GROUP
BY company;