|
|
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
Подскажите можно ли одни запросом получить массив как если бы это была одна строка. Например в таблице одна строка: Столбцы: name, city, phone, email Сделав запрос получим массив Ключ/Значение А можно получить так же ключ/значение при структуре: id, key, value Где key - это имя настройки, value - это значение, и в таблице много строк. Вот можно ли в 1 запросе получить такой же результат - как с одной строкой? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 15:00:24 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
Нет в MySQL пивотов. Эмулируй на кейсах. Или в процедуре собирай текст запроса для prepared statement. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 15:06:39 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
Akina, А можно пример как это можно эмулировать, Или где почитать о примере реализации синтаксиса реализации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 15:20:52 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
Подозреваю, тут будет достаточно GROUP_CONCAT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 15:32:08 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
Вот я поэкспериментировал с вариантом. Но при таком подходе я должен знать кол-во строк, а их может быть разное кол-во Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 16:55:14 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
miksoft, GROUP_CONCAT - объедение в строку. Как можно её применить к моей задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 16:57:28 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
dok11, Вы в любом случае должны знать количество полей в результирующем наборе данных, т.к. MySQL иначе не умеет (не считая звездочки, но тут явно не ее случай). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 16:58:37 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
dok11miksoft, GROUP_CONCAT - объедение в строку. Как можно её применить к моей задачи?Объединить, а на клиенте разобрать обратно, если нужно. Или применять в объединенном виде. Это уже зависит от задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 16:59:27 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
miksoftdok11, Вы в любом случае должны знать количество полей в результирующем наборе данных, т.к. MySQL иначе не умеет (не считая звездочки, но тут явно не ее случай). miksoft, Да, в том то и дело, что это конфигурация проекта, проще говоря динамические настройки, То есть при добавлении к проекту дополнительного модуля в таблицу попадает "пачка" строк с конфигурацией этого модуля (Наименование / Значение) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 17:14:01 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
dok11Да, в том то и дело, что это конфигурация проекта, проще говоря динамические настройки, То есть при добавлении к проекту дополнительного модуля в таблицу попадает "пачка" строк с конфигурацией этого модуля (Наименование / Значение)Ну и выбирайте их отдельными записями. Не понимаю, зачем их в одну кучу мешать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 17:18:42 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
Дык, что бы потом их можно было использовать в любом месте проекта - как массив ключ=>Значение, нужно в цикле постоянно строить массив, что отнимает производительность, кол-во настр. может быть от 200 до 1000. Это получится при каждом обращении к сайту будет выполняться этот перебор, я конечно понимаю что можно всё это в кэш загнать и ещё варианты есть, но мне просто интересно что так нельзя что ли сделать? Строки в столбцы перевернуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 17:31:59 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
dok11что бы потом их можно было использовать в любом месте проекта - как массив ключ=>Значение, нужно в цикле постоянно строить массивЕго все равно строить, что из одной записи, что из множества. dok11кол-во настр. может быть от 200 до 1000Неужели все нужны каждый раз? Не лучше ли было бы из таблицы сразу выбирать нужные значения? dok11мне просто интересно что так нельзя что ли сделать? Строки в столбцы перевернуть.При неизвестном количестве результирующих столбцов - нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 17:40:27 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
miksoft, Вот у нас сейчас в таблице настрое 1 строка, и каждой настройке отводится отдельный столбец. Запросом: Код: sql 1. Мы получаем пару ключ=>значение без всяких циклов, но это не гибко и не удобно, потому что нельзя указать модуль, тип настройки и тд. Во и хотелось сделать универсально и быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 17:48:19 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
dok11, неужели нельзя описать задачу правильно , а не проблемы которые получаются в процессе неправильного решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 18:04:05 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
dok11потому что нельзя указать модульлибо поддерживайте уникальность ключей в пределах всей системы (например, префиксами в их именах), либо добавьте поле для указания модуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2015, 22:09:57 |
|
||
|
Как можно объединить несколько строк в пару (ключ/Значение)
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. тогда "массив" параметров модуля можно получить так: Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2015, 09:12:33 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38959065&tid=1833199]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 337ms |

| 0 / 0 |
