Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php mysql中将列数据转换为行_Php_Mysql_Lamp_Addressbook - Fatal编程技术网

如何在php mysql中将列数据转换为行

如何在php mysql中将列数据转换为行,php,mysql,lamp,addressbook,Php,Mysql,Lamp,Addressbook,这基本上是为了测试一个地址簿php应用程序。 这是我从SQL查询得到的输出。我想将此结果转换为一行 MySQL查询输出 输出寻找 尝试以下查询。假设posteta是一个表名 select a.contact_id,b.meta_value,c.meta_value,d.meta_value,e.meta_value from postmeta a join postmeta b on (a.contact_id=b.contact_id and b.meta_date='First_Name

这基本上是为了测试一个地址簿php应用程序。 这是我从SQL查询得到的输出。我想将此结果转换为一行

MySQL查询输出

输出寻找


尝试以下查询。假设posteta是一个表名

select a.contact_id,b.meta_value,c.meta_value,d.meta_value,e.meta_value
from postmeta a 
join postmeta b on (a.contact_id=b.contact_id and b.meta_date='First_Name')
join postmeta c on (a.contact_id=c.contact_id and c.meta_date='Last_Name')
join postmeta d on (a.contact_id=d.contact_id and d.meta_date='Primary_Email')
join postmeta e on (a.contact_id=e.contact_id and d.meta_date='Primary_Phone')
查询
您可以显示查询吗?从contacts中选择meta_关系。contact_id,contact_meta.id,contact_meta.meta_数据,contact_meta.meta_值,contact_meta,meta_关系,其中contacts.id=meta_关系。owner_id和meta_关系。meta_id=contact_meta.id和contacts.id=1它将使用一个简单的光标和临时表。您在查询中提到了3个表,请同时提及该表的结构。。
SELECT contact_id,
MAX(First_name) AS First_name,
MAX(Last_Name) AS Last_Name,
MAX(Primary_Email) AS Primary_Email,
MAX(Primary_phone) AS Primary_phone
FROM (
SELECT MIN(contact_id) as contact_id,
CASE WHEN meta_data='First_Name' THEN meta_value END AS First_Name,
CASE WHEN meta_data='Last_Name' THEN meta_value END AS Last_Name,
CASE WHEN meta_data='Primary_Email' THEN meta_value END AS Primary_Email,
CASE WHEN meta_data='Primary_phone' THEN meta_value END AS Primary_phone
FROM tbl
GROUP BY contact_id,meta_data,meta_value
) t
GROUP BY contact_id