MySql-запрос для получения результата из значений, разделенных запятыми, хранящихся в столбце [duplicate]

Новый (в 2014 году) tidyr пакет также делает это просто, при этом gather() / spread() является слагаемыми для melt / cast.

library(tidyr)
spread(dat1, key = numbers, value = value)

Из github ,

tidyr - это перерисовка reshape2, предназначенная для сопровождения аккуратной структуры данных и работающая рука об руку с magrittr и dplyr, чтобы построить сплошной конвейер для анализа данных.

Так же, как reshape2 сделал меньше, чем изменение, tidyr делает меньше, чем reshape2. Он разработан специально для сбора данных, а не для общей перестройки, которую делает reshape2, или общего преобразования, которое изменилось. В частности, встроенные методы работают только для кадров данных, а tidyr не содержит полей или агрегации.

blockquote>

3
задан Adam Rackis 10 November 2011 в 20:39
поделиться

1 ответ

В SQL лучше хранить одно значение в столбце, а не список значений, разделенных запятыми. См. Мой ответ на Является ли хранение списка с запятыми в столбце базы данных действительно так плохо?

Вы можете попробовать этот запрос, но он будет ужасно медленным и неэффективным:

SELECT Table1.id, GROUP_CONCAT(Table2.values) AS values
FROM Table1
JOIN Table2 ON FIND_IN_SET(Table2.id, Table1.nos)
GROUP BY Table1.id;

См. функцию FIND_IN_SET () .

4
ответ дан Community 22 August 2018 в 09:58
поделиться
  • 1
    спасибо Биллу Карвину за ваш ценный ответ ... от этого у меня появилась идея работать в mysql ... – raja 10 November 2011 в 12:50
  • 2
    Привет, Билл Карвин, но результат, похоже, меняется в порядке id | значения --------------------- 1 ravi, rames, raja 2 ravi 3 ravi, raja – raja 10 November 2011 в 13:10
  • 3
    Посмотрите документацию на GROUP_CONCAT () . Вы можете указать порядок сортировки. – Bill Karwin 10 November 2011 в 19:56
  • 4
    спасибо bil karwin. теперь у меня есть идея ,,, – raja 11 November 2011 в 08:23
Другие вопросы по тегам:

Похожие вопросы: