SELECT с структурированием данных(MySQL)

Вопросы, не относящиеся ни к одному разделу

SELECT с структурированием данных(MySQL)

Сообщение guyasyou » 16 окт 2013, 15:55 ,  »  Сообщение:#1

Есть такая табличка:
Изображение

Надо сделать такой SELECT, чтобы получить все теги из fvTags как массив. То есть
Код: Выделить всё
array{car; cartoon; Hello Kitty; green}

Ну или в виде строки с разделением запятыми.

Сейчас у меня так
Код: Выделить всё
$allTags = $db->GetOne('SELECT GROUP_CONCAT(fvTags) FROM FileVersions WHERE fvTags != ""');

И я получаю
Код: Выделить всё
string(56) "
Hello Kitty
pink
bag
,
car
cartoon
,
Hello Kitty
green
"


Основная цель: получить все теги файлов и построить облако тегов из них. Может у кого другие решения.
Так как файлов очень много, делать это на уровне PHP будет не хорошо- медленно будет считать, а mysql как то быстрее работает.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: SELECT с структурированием данных(MySQL)

Сообщение cmsservice » 16 окт 2013, 16:58 ,  »  Сообщение:#2

Попробуй вот как-то так

Код: Выделить всё
SELECT GROUP_CONCAT(DISTINCT REPLACE(TRIM(BOTH '\n' FROM fvTags), '\n', ',') ORDER BY fvTags DESC SEPARATOR ',') FROM FileVersions WHERE fvTags != ""
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: SELECT с структурированием данных(MySQL)

Сообщение guyasyou » 16 окт 2013, 20:44 ,  »  Сообщение:#3

cmsservice писал(а):Попробуй вот как-то так

Код: Выделить всё
SELECT GROUP_CONCAT(DISTINCT REPLACE(TRIM(BOTH '\n' FROM fvTags), '\n', ',') ORDER BY fvTags DESC SEPARATOR ',') FROM FileVersions WHERE fvTags != ""

Угу, сработало, спасибо!
Поискал еще аналог explode в MySQL, нема. буду делить на пхп. ну думаю там несколько сотен будет, не тысячи таки.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: SELECT с структурированием данных(MySQL)

Сообщение cmsservice » 16 окт 2013, 21:39 ,  »  Сообщение:#4

Да я думаю разделить вообще не большая проблема, тем более, что explode бинарная функция и должна работать быстро.
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: SELECT с структурированием данных(MySQL)

Сообщение guyasyou » 24 окт 2013, 20:26 ,  »  Сообщение:#5

Код: Выделить всё
$allTags = $db->GetOne("SELECT GROUP_CONCAT(DISTINCT REPLACE(TRIM(BOTH '\n' FROM fvTags), '\n', ',') ORDER BY fvTags DESC SEPARATOR ',') FROM FileVersions WHERE fvIsApproved = 1 AND fvTags != ''");


Получаю строку с длиной 1024 (чего то там, в дампе пишет) и не более. а должна быть больше. Как решить проблему с ограничением длины строки?
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: SELECT с структурированием данных(MySQL)

Сообщение guyasyou » 25 окт 2013, 18:52 ,  »  Сообщение:#6

никто не знает как убрать ограничение получаемой строки от mysql в 1024???
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: SELECT с структурированием данных(MySQL)

Сообщение cmsservice » 25 окт 2013, 22:07 ,  »  Сообщение:#7

Я не знаю, мои бойцы посоветовали сделать хранимую процедуру, которая бы делала вьюшку с одним тегом на запись. Боюсь даже представить такую процедуру :)
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: SELECT с структурированием данных(MySQL)

Сообщение guyasyou » 25 окт 2013, 22:13 ,  »  Сообщение:#8

Процедуру в mysql? Видел чтото плдобное
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: SELECT с структурированием данных(MySQL)

Сообщение cmsservice » 25 окт 2013, 22:23 ,  »  Сообщение:#9

Да, хранимая процедура, в MySQL 5 есть возможность таковые создавать. Гуглить по фразе CREATE PROCEDURE
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: SELECT с структурированием данных(MySQL)

Сообщение Count_Raven » 26 окт 2013, 14:15 ,  »  Сообщение:#10

Можно вот так:
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку

Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку

Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку

Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку

Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку


Короче говоря, есть возможность увеличить размер данных только в рамках текущей сессии. Т.е. после закрытия сессии, все вернется на дефолтные настройки. Поэтому нужно будет всегда перед выполнением запроса выполнять изменение параметра. Либо, если есть доступ к настройкам сервера, то можно изменить параметр в конфигурационном файле MySQL. Либо хранимой процедурой.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: SELECT с структурированием данных(MySQL)

Сообщение guyasyou » 26 окт 2013, 16:11 ,  »  Сообщение:#11

короче, получу массив всех тегов и распарсю в php.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron