我有一个MySQL表,其中包含以下数据:
id userid fieldid data
-- ------ ------- ----
1 186 1 London
2 186 3 Accountant
3 186 5 Joe Jones
4 206 1 Paris
5 206 5 Mark Smith
6 210 1 Berlin
7 210 2 0020
8 210 3 Farmer
9 210 4 000-000-0000
10 210 5 Bill Johnson
等
我想要最终得到的是另一个表格,其数据根据用户ID格式化为行:
userid Region Acct Title Phone Name
------ ------ ---- ----- ----- ----
186 London NULL Accountant NULL Joe Jones
206 Paris NULL NULL NULL Mark Smith
210 Berlin 0020 Farmer 000-000-0000 Bill Johnson
我不需要SELECT语句......我知道如何使用GROUP_CONCAT查看数据。我正在谈论另一个表(可能是虚拟表?),其中包含行数据。
我不介意引用行名和列名的脚本,但我不想引用特定的数据字段(即 - 如果row_data = London移动到column1)。
我宁愿说“IF fieldid = 1然后将'数据'移动到new_table.column1”,但我对此怎么说都没有任何想法。
有人可以帮忙吗?
答案 0 :(得分:0)
怎么样:
create table mynewtable as
(the select statement you already know )
答案 1 :(得分:0)
试试这个:
CREATE TABLE `temptable` AS
SELECT userid, MAX(IF(fieldid =1, DATA, NULL)) Region,
MAX(IF(fieldid=2, DATA, NULL)) Acct, MAX(IF(fieldid =3, DATA, NULL)) Title,
MAX(IF(fieldid=4, DATA, NULL)) Phone, MAX(IF(fieldid =5, DATA, NULL)) `Name`
FROM tablename
GROUP BY userid