PHP MySQL 将多列转换为多行

标签 php mysql

所以我有一个结构如下的数据库表......

NAME | PHONE | EMAIL1 | EMAIL2 | EMAIL3

这些将是我的列,想象这是该数据库中的一行..

John | 555-555-5555 | email1@website.com | email2@website.com | email3@website.com

我需要能够将这些条目转储到 CSV,我已经有可以工作的代码,但格式是问题。

我需要将每封电子邮件显示在一行中,并具有相应的名称和号码,格式如下...

John | 555-555-5555 | email1@website.com
John | 555-555-5555 | email2@website.com
John | 555-555-5555 | email3@website.com

我需要检索数千行并以这种方式显示它们,是否有某种方法使用 PHP while 循环可以以这种格式显示数据库表中的行?非常感谢任何帮助。

最佳答案

这个过程称为逆透视。
最常见的是在 MySQL 中使用 UNION ALL 完成。

SELECT 
   NAME
 , PHONE
 , EMAIL1 
FROM 
 table

UNION ALL 

SELECT 
   NAME
 , PHONE
 , EMAIL2 
FROM 
 table

UNION ALL 

SELECT 
   NAME
 , PHONE
 , EMAIL3 
FROM 
 table

关于PHP MySQL 将多列转换为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420178/

相关文章:

php - 使用链式方法和参数模拟调用

php - HTML 和 PHP 的帖子值(value)有限

php - 如何在 MYSQL 中为订阅模型创建规则?

Mysql只做不选重复值

mysql - 使用顺序/范围概念分组

php不执行查询

mysql - 我收到SQL异常:参数索引超出范围(1>参数数量,即0)错误

php - Firefox 和 chrome 中的页面无法正确显示 ul

java - php 向 java 服务器发出请求

javascript - $http.post (angularjs) 中的未定义函数 : . 成功