簡體   English   中英

如何將兩個連續的MySQL行合並為一行

[英]How to merge two sequential MySQL rows into one row

我可以將兩個順序的MySQL表行合並為一個嗎?

例如,輸入:

Id  FName
1   Name1
2   Name2
3   Name3 
4   Name4
7   Name5
8   Name6

所需的輸出:

Id FName
1  Name1,Name2
3  Name3,Name4
7  Name5,Name6

提前致謝。

您可以使用模數運算符(%)來選擇奇數行(按id)並進行聯接以獲取偶數的id

drop table if exists t;
create table t (id int, FName varchar(5));

insert into t values
(1,   'Name1'),
(2,   'Name2'),
(3,   'Name3'),
(4,   'Name4'),
(7,   'Name5'),
(8,   'Name6');

select t.id,concat(t.fname,',',t1.fname) fname
from t t
join t t1 on t1.id = t.id + 1
where t.id % 2 <> 0

結果

+------+-------------+
| id   | fname       |
+------+-------------+
|    1 | Name1,Name2 |
|    3 | Name3,Name4 |
|    7 | Name5,Name6 |
+------+-------------+
3 rows in set (0.00 sec)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM