SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.08.2009 23:05:19

murka3000
Участник
Зарегистрирован: 11.08.2009
Сообщений: 4

Данные в ячейке через запятую, как отсортировать по каждому из слов

В движке DLE реализованна система категорий\подкатегорий.
Каждый пост добавляет в столбик "category" несколько значений.
Как потом фильтруются посты по категориям, если в каждой ячейке по несколько данных?

Неактивен

 

#2 12.08.2009 00:49:40

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Данные в ячейке через запятую, как отсортировать по каждому из слов

Этот вопрос к mysql не имеет отношения.
База возвращает содержимое колонки "category" скрипту DLE, а уже он его обрабатывает и фильтрует посты по категориям. Как именно? Это надо смотреть скрипт.

Неактивен

 

#3 12.08.2009 16:33:32

murka3000
Участник
Зарегистрирован: 11.08.2009
Сообщений: 4

Re: Данные в ячейке через запятую, как отсортировать по каждому из слов

vasya написал:

Этот вопрос к mysql не имеет отношения.
База возвращает содержимое колонки "category" скрипту DLE, а уже он его обрабатывает и фильтрует посты по категориям. Как именно? Это надо смотреть скрипт.

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

Неактивен

 

#4 12.08.2009 16:43:24

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Данные в ячейке через запятую, как отсортировать по каждому из слов

Тогда откажитесь от DLE. С его количеством проблем, он не стоит того, чтобы быть wink

А вообще — имеет смысл вопросы по работе скриптов задавать авторам скриптов, в конце
концов, именно они пишут то, что не работает.

Неактивен

 

#5 12.08.2009 22:37:55

murka3000
Участник
Зарегистрирован: 11.08.2009
Сообщений: 4

Re: Данные в ячейке через запятую, как отсортировать по каждому из слов

paulus написал:

Тогда откажитесь от DLE. С его количеством проблем, он не стоит того, чтобы быть wink

А вообще — имеет смысл вопросы по работе скриптов задавать авторам скриптов, в конце
концов, именно они пишут то, что не работает.

Да я им не пользуюсь, я просто вспомнил, что они категории записывают через запятую в каждую ячейку.
Записать-то не проблема, а вот потом, чтобы выбрать определённую категорию, как mysql должен отфильтровавыть только те, которые нужны.
В смысле, "SELECT * FROM table WHERE category=hljn" не найдёт ячейку "hljn, dfd, rht".

Неактивен

 

#6 12.08.2009 22:53:10

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Данные в ячейке через запятую, как отсортировать по каждому из слов

where category like '%hljn%'

Неактивен

 

#7 13.08.2009 16:34:13

murka3000
Участник
Зарегистрирован: 11.08.2009
Сообщений: 4

Re: Данные в ячейке через запятую, как отсортировать по каждому из слов

а если есть 4 группы: hljn, hljnуа, dfd, rht
ячейка 1: hljn, dfd, rht
ячейка 2: hljnуа, dfd, rht

where category like '%hljn%'   выдаст обе ячейки, хотя нужна только первая

Неактивен

 

#8 13.08.2009 17:28:07

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Данные в ячейке через запятую, как отсортировать по каждому из слов

Угу, способ хранения данных отвратительный smile Правильно хранить слова
в отдельной табличке и искать по ней. Если хочется правда написать костыль
над этим, то попробуйте добавить индекс FULLTEXT(category), тогда можно
будет делать WHERE MATCH (category) AGAINST ('hljn');

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson