繁体   English   中英

如何将两个MySQL列合并为一列?

[英]How to combine two MySQL columns to one column?

我想转换这个MySQL表:

title1 | title2 |type  
-------+--------+----
qwe1   | qwe2   | 3  
asd1   | asd2   | 7

在PHP中使用此表

title | type  
------+-----
asd1  | 7  
asd2  | 7  
qwe1  | 3  
qwe1  | 3

但我不知道如何正确地按第一列排序PHP表。

(这是我目前使用的代码)

$sql = "SELECT * FROM table ORDER BY title1, title2";   
$pager = new PS_Pagination( $dbh, $sql, 3, 4, null );//pagination class
$rs = $pager->paginate(); 

while ($row = $rs->fetch(PDO::FETCH_ASSOC)){
    echo "<tr>";
    echo "<td>{$row['title1']}</td>";
    echo "<td>{$row['type']}</td>";
    echo "</tr>";

    echo "<tr>";
    echo "<td>{$row['title2']}</td>";
    echo "<td>{$row['type']}</td>";
    echo "</tr>";
}       

echo "</table>";

在SQL本身中,您可以使用UNION来完成它。 并使用ORDER BY进行整个查询!

SELECT `title1` AS `title`, `type`
FROM `table`
UNION
SELECT `title2` AS `title`, `type`
FROM `table`
ORDER BY `title` ASC

产量

+-------+------+
| TITLE | TYPE |
+-------+------+
|  asd1 |    7 |
|  asd2 |    7 |
|  qwe1 |    3 |
|  qwe2 |    3 |
+-------+------+

小提琴: http ://sqlfiddle.com/#!2 / fff9cf / 1

尝试:

SELECT 'title1' AS 'title', 'type' from 'table'
UNION
SELECT 'title2' AS 'title', 'type' from 'table'
ORDER BY 'title'

希望我的语法正确。

基本上你想做两个查询并合并结果,这是UNION所做的。

编辑(请参阅UNION和UNION ALL之间差异的其他答案)。

在使用Union之前,使用As将列重命名为gt相同的结构

SELECT title1 as title, type
FROM YourTable
UNION ALL
SELECT title2 as title, type
FROM YourTable

我想你需要使用UNION:

SELECT title1, type
FROM YourTable
UNION ALL
SELECT title2, type
FROM YourTable

如果您不想要重复,可以删除使用UNION而不是UNION ALL。

- 编辑

如上所述,如果您的意图也是为了对这些结果进行ORDER,只需添加一个ORDER BY子句并为您的列添加别名:

SELECT title1 title, type
FROM YourTable
UNION ALL
SELECT title2 title, type
FROM YourTable
ORDER BY title

祝好运。

你需要工会

select * from (select title1 as title, type
from table
union
select title2 as title, type
from table) order by title

从我对你想要的concantinate title1 + title2然后订购的问题的理解。

我不明白为什么每个人都在使用工会

Select concat(title1,title2) title, type
from yourTable
order by title asc 

会做的工作

编辑:无法从iPhone写入代码格式化的文本。 谢谢fthiella

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM