我使用此查询获取users
表中所有可能的成员:
SELECT u.id as id ,
u.name as name,
u.age as age
FROM users u
显然结果是:
id name age
-----------------------
21 name1 age1
22 name2 age2
23 name3 age3
24 name4 age4
我想要的是获得以下最终结果:
id_1 name_1 age_1 id_2 name_2 age_2 id_3 name_3 age_3 id_4 name_4 age_4
--------------------------------------------------------------------------------------------------------
21 name1 age1 22 name2 age2 23 name3 age3 24 name4 age4
正如您在最终结果中所看到的,我希望将其返回一行。那可能吗?如果有可能,我可以问你有关如何实现它的任何建议吗?任何答案将不胜感激。
答案 0 :(得分:0)
该要求在数据操作中看起来并不实用。但如果它是你正在寻找的格式化的意思......
SELECT
GROUP_CONCAT(if(id = 21, id, NULL)) AS id_1,
GROUP_CONCAT(if(id = 21, name, NULL)) AS name_1,
GROUP_CONCAT(if(id = 21, age, NULL)) AS age_1,
GROUP_CONCAT(if(id = 22, id, NULL)) AS id_2,
GROUP_CONCAT(if(id = 22, name, NULL)) AS name_2,
GROUP_CONCAT(if(id = 22, age, NULL)) AS age_2,
GROUP_CONCAT(if(id = 23, id, NULL)) AS id_3,
GROUP_CONCAT(if(id = 23, name, NULL)) AS name_3,
GROUP_CONCAT(if(id = 23, age, NULL)) AS age_3,
GROUP_CONCAT(if(id = 24, id, NULL)) AS id_4,
GROUP_CONCAT(if(id = 24, name, NULL)) AS name_4,
GROUP_CONCAT(if(id = 214, age, NULL)) AS age_5
FROM users
GROUP BY id