Как разбить 10 строк в 2 столбца в запросе MySQL - PullRequest
0 голосов
/ 09 января 2019

enter image description here

10 строк в таблице MySQL, мне нужно разделить 10 строк на 5 строк в одном столбце и еще 5 в другом столбце.

enter image description here

Каким будет запрос для получения такого результата?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Пожалуйста, попробуйте ниже запрос, он будет динамически разбивать строки на столбцы без каких-либо параметров, просто замените «Время» на имя вашего столбца.

      SELECT b.*, c.* from 
      (SELECT CEILING(COUNT(id) / 2) as totalId from test) as a JOIN 
      (SELECT id as id1, Time as column1 FROM test) as b LEFT JOIN
      (SELECT id as id2, Time as column2 FROM test) as c
      ON b.id1 = c.id2-a.totalId 
      WHERE b.id1 < a.totalId+1

Вы можете заменить * на имя столбца также так:

      SELECT b.column1, c.column2 from 
      (SELECT CEILING(COUNT(id) / 2) as totalId from test) as a JOIN 
      (SELECT id as id1, Time as column1 FROM test) as b LEFT JOIN
      (SELECT id as id2, Time as column2 FROM test) as c
      ON b.id1 = c.id2-a.totalId 
      WHERE b.id1 < a.totalId+1
0 голосов
/ 09 января 2019

Это довольно ужасно делать в MySQL, и вам лучше делать это на языке приложений.

Грубо говоря, вы можете сделать следующее, но ему не хватает масштабируемости:

SELECT a.value, b.value
FROM tbl a
JOIN tbl b ON a.id=b.id-5
WHERE a.id < 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...