В настоящее время я сталкиваюсь с проблемой, когда мне нужно объединить несколько строк в одну строку, определенную конкретным ключом. Я знаю функциональность GROUP_CONCAT и использую ее в настоящее время, но я бы хотел избежать использования разнесения в PHP после получения моих результатов. Моя таблица выглядит так:
----------------------------------
| primary_id | key_value | value |
----------------------------------
| 1 | my_key_1 | val_1 |
| 1 | my_key_2 | val_2 |
| 1 | my_key_3 | val_3 |
| 2 | my_key_4 | val_4 |
| 2 | my_key_5 | val_5 |
----------------------------------
И я хотел бы построить MySQL-Query, который представляет это именно так для первичного идентификатора 1 и первичного идентификатора 2:
-----------------------------------------------
| primary_id | my_key_1 | my_key_2 | my_key_3 |
-----------------------------------------------
| 1 | val_1 | val_2 | val_3 |
-----------------------------------------------
------------------------------------
| primary_id | my_key_4 | my_key_5 |
------------------------------------
| 2 | val_4 | val_5 |
------------------------------------
Таким образом, я могу получить вывод в виде массива в PHP, с помощью формы:
$output[1][my_key_1] = val_1
$output[1][my_key_2] = val_2
...
Функциональность GROUP_CONCAT работает, но было бы намного лучше иметь значение в той форме, в которой оно мне было нужно, только с использованием SQL.
Буду признателен за любые указатели, с наилучшими пожеланиями.
Используйте опору
выберите max (регистр (когда key_value = my_key_1, затем val_1 end)),
max (случай (когда key_value = my_key_2 затем val_2 end)),
от…
так далее…
Других решений пока нет …