|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
После обработки полей, содержащих XML данные, получаю следующее: Values1620 4402116 440 21 Далее преобразовываю так: Values16;20;440;21;16;440;21 Вопрос: Можно ли последнюю строку значений, разбитых запятой вывести в столбец, вот так: Values1620440211644021 Либо продублировать строки в результате запроса, если они есть в операторе IN (16,20,440,21,16,440,21) ? Код: sql 1. 2. 3. 4. 5.
В итоге нужно получить: Values Count162 шт201 шт4402 шт212 шт ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 19:24 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
slawdowsДалее преобразовываю так: Values16;20;440;21;16;440;21 Вопрос: Можно ли последнюю строку значений, разбитых запятой вывести в столбец, вот так: Values1620440211644021Если версия 8+ - легко. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 07:34 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
slawdowsВ итоге нужно получить: Values Count162 шт201 шт4402 шт212 штА вот это - совсем иная задача, для которой вовсе не требуется (хотя и можно) деление на отдельные записи. И опять же - простота реализации зависит от версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 07:35 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
Akina, покажи для 8,+ ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 09:43 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
вадяпокажи для 8,+ Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
fiddle ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 10:14 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
AkinaЕсли версия 8+ - легко. На данный момент 5.7 :( AkinaА вот это - совсем иная задача, для которой вовсе не требуется (хотя и можно) деление на отдельные записи. И опять же - простота реализации зависит от версии. На нашей версии можно попытаться? Akina Код: sql 1. 2. 3. 4. 5. 6.
А если количество получаемых строк неизвестно? @Akina, и вариант с выводом повторов в IN совсем "идиотский"? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 11:33 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
slawdowsНа нашей версии можно попытаться?Можно. Пиши хранимку... либо генери опорную таблицу чисел динамически. А остальное не изменится. Только нужно как-то изначально знать максимально возможное количество элементов в одной записи. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
fiddle slawdowsА если количество получаемых строк неизвестно?А какая разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 11:49 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
Пардон, забыл заменить комментарий на код. fiddle ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 11:52 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
AkinaТолько нужно как-то изначально знать максимально возможное количество элементов в одной записи. Ну да, есть предел, за который они не будут выходить. 10 наверное и есть. Кажется при обработке XML можно подсчитать количество элементов? Это поможет? AkinaА какая разница? Ну просто у Вас в первом примере количество SELECT -ов по количеству строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 12:25 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
slawdowsпросто у Вас в первом примере количество SELECT -ов по количеству строк.Ну лень мне было тратить два запроса на создание да наполнение таблицы. А так что CTE, что статическая таблица - результат-то от этого не зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 13:54 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
Akinaрезультат-то Спасибо большое за совет и главное за код, буду разбираться! Последний вопрос: будет ли более правильным делать такие операции по обработке на стороне какого либо клиента или логике MySQL это никак не претит? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 14:07 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
Любую работу должен выполнять тот, кто для этой работы наилучшим образом приспособлен. Обработку (описанного выше типа) данных из базы лучше вести на сервере баз данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 14:14 |
|
Разбиение строки значений на столбец (Или возможность вывода повторов в IN)
|
|||
---|---|---|---|
#18+
Akina, Вы Гений! Теперь действительно большое спасибо, так как удалось вернуться к задаче и успешно реализовать! В чём будет разница между использованием динамической таблицы или хранимой процедуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 17:06 |
|
|
start [/forum/topic.php?fid=47&fpage=35&tid=1829136]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 9ms |
total: | 119ms |
0 / 0 |