[英]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.