Улучшение базового запроса SQL - группировка результатов - PullRequest
1 голос
/ 20 августа 2011

Я улучшаю фрагмент кода PHP, который выполняет запрос MySQL.В настоящее время запрос производит набор результатов, подобных этому:

id  summary status  date_submitted  last_updated    value
48  test case 1 30  1313755157  1313755252  Low Yield
48  test case 1 30  1313755157  1313755252  28BK
48  test case 1 30  1313755157  1313755252  Yield
48  test case 1 30  1313755157  1313755252  3
48  test case 1 30  1313755157  1313755252  1
48  test case 1 30  1313755157  1313755252  n/a

Value всегда будет другим, но все остальные поля будут иметь одинаковое значение.Я хочу преобразовать вышеупомянутое, чтобы быть похожим на это

id  summary status  date_submitted  last_updated value1, value2, value3, value4, value5
48  test case 1 30  1313755157  1313755252      Low Yield 28BK Yield 3    1         n/a

так, чтобы у каждого из значений был свой собственный столбец также.Я не думаю, что мне нужно вставить массивный запрос, который дает первый результат?Я думаю, что люди могут рассматривать результат как таблицу и придумать запрос из этого?Я отправлю исходный запрос, если потребуется.

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 20 августа 2011

Вы не можете сделать это точно, но вы можете сделать список значений через запятую.Смотрите этот вопрос:

Как использовать GROUP BY для объединения строк в MySQL?

Вы бы написали что-то вроде:

SELECT
  id,
  summary,
  status,
  date_submitted,
  last_updated,
  GROUP_CONCAT(value SEPARATOR ',') as values
FROM
  table
GROUP BY
  id,
  summary,
  status,
  date_submitted,
  last_updated

В этомВ этом случае значения принимают значение «Низкий доход, 28BK, Доход, 3,1, н / д».

0 голосов
/ 20 августа 2011

Вы можете использовать набор case и псевдонимов столбцов:

Select Case value = 'Low Yield' then 'Low Yield' else NULL END as LowYieldCol,
Case value = 'Yield' then 'Yield' else NULL END as YieldCol,
......

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...