SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

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

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

Вы не зашли.

#1 15.01.2011 12:10:35

valetrammstein
Участник
Зарегистрирован: 15.01.2011
Сообщений: 19

Запрос на удаление дублей из строки

Думаю, простой запрос для профи mysql, а я уже измотался, помогите решить...

Есть таблица dle_post, в ней столбец category (varchar(200)) со списком id категорий, которые могут дублироваться. Дубли из списка надо удалить.

То есть есть например
category="8,8,11,15,17,17,23"
должно остаться:
category="8,11,15,17,23"

Как это сделать?
Предполагаю, что надо как-то разбивать по разделителю ",", после чего уникализировать. Но какие именно функции использовать не могу понять.

Помогите разобраться...

Неактивен

 

#2 15.01.2011 14:06:45

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

Re: Запрос на удаление дублей из строки

valetrammstein написал:

Как это сделать?
Предполагаю, что надо как-то разбивать по разделителю ",", после чего уникализировать. Но какие именно функции использовать не могу понять.

Строковые, наверное smile
http://dev.mysql.com/doc/refman/5.1/en/ … tions.html

Но простым запросом вы это не сделаете, так как придется делать то самое от слова "уникализировать" wink
Если только начинаете использовать dle, то лучше воспользуйтесь советом из FAQ №10

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

Неактивен

 

#3 15.01.2011 14:18:31

valetrammstein
Участник
Зарегистрирован: 15.01.2011
Сообщений: 19

Re: Запрос на удаление дублей из строки

vasya написал:

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

Не могли бы набросить рабочий пример?

Неактивен

 

#4 15.01.2011 14:27:55

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

Re: Запрос на удаление дублей из строки

http://dev.mysql.com/doc/refman/5.1/en/ … edure.html

Не обязательно использовать именно хранимые процедуры, вы можете делать это более удобным вам способом, например, php-скриптом. И проверку уникальности проводить не с помощью временной таблицы, а, например, с помощью массивов, и т.д.

Неактивен

 

Board footer

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