У меня есть таблица mysql:
У каждого пользователя 4 адреса электронной почты:
id user_Id email
1 11 [email protected]
2 11 [email protected]
3 11 [email protected]
4 11 [email protected]
5 12 [email protected]
6 12 [email protected]
7 12 [email protected]
8 12 [email protected]
9 13 [email protected]
10 13 [email protected]
11 13 [email protected]
12 13 [email protected]
Как отсортировать результат строки по горизонтали?
Как это:
user_Id email1 email2 email3 email4
11 [email protected] [email protected] [email protected] [email protected]
12 [email protected] [email protected] [email protected] [email protected]
13 [email protected] [email protected] [email protected] [email protected]






select user_Id , GROUP_CONCAT(email ORDER BY email) from tab
group by user_Id
таким образом вы получите только один столбец со всеми электронными письмами, а не по одному на каждое
Если ваши электронные письма ограничены до 4, вы можете следить за этим
select t1.user_id,
(select email from test where test.user_id = t1.user_id limit 0,1) as email1,
(select email from test where test.user_id = t1.user_id limit 1,1) as email2,
(select email from test where test.user_id = t1.user_id limit 2,1) as email3,
(select email from test where test.user_id = t1.user_id limit 3,1) as email4
from test t1
group by t1.user_id;
Отлично, приятно видеть этот ответ. :)
@jeanpaul, если этот ответ работает для вас, отметьте этот ответ как решение.
взгляните на сводные таблицы в mysql