Задавайте вопросы, мы ответим
Вы не зашли.
Думаю, простой запрос для профи mysql, а я уже измотался, помогите решить...
Есть таблица dle_post, в ней столбец category (varchar(200)) со списком id категорий, которые могут дублироваться. Дубли из списка надо удалить.
То есть есть например
category="8,8,11,15,17,17,23"
должно остаться:
category="8,11,15,17,23"
Как это сделать?
Предполагаю, что надо как-то разбивать по разделителю ",", после чего уникализировать. Но какие именно функции использовать не могу понять.
Помогите разобраться...
Неактивен
valetrammstein написал:
Как это сделать?
Предполагаю, что надо как-то разбивать по разделителю ",", после чего уникализировать. Но какие именно функции использовать не могу понять.
Строковые, наверное
http://dev.mysql.com/doc/refman/5.1/en/ … tions.html
Но простым запросом вы это не сделаете, так как придется делать то самое от слова "уникализировать"
Если только начинаете использовать dle, то лучше воспользуйтесь советом из FAQ №10
Иначе пишите хранимую процедуру, в которой вносите содержимое поля category во временную таблицу с уникальным индексом над столбцом. Если часть записей была проигнорирована, обновляете поле category, группируя записи из временной таблицы через запятую. Очищаете временную таблицу. Переходите к следующей строке основной таблицы..
Неактивен
vasya написал:
Иначе пишите хранимую процедуру, в которой вносите содержимое поля category во временную таблицу с уникальным индексом над столбцом. Если часть записей была проигнорирована, обновляете поле category, группируя записи из временной таблицы через запятую. Очищаете временную таблицу. Переходите к следующей строке основной таблицы..
Не могли бы набросить рабочий пример?
Неактивен
http://dev.mysql.com/doc/refman/5.1/en/ … edure.html
Не обязательно использовать именно хранимые процедуры, вы можете делать это более удобным вам способом, например, php-скриптом. И проверку уникальности проводить не с помощью временной таблицы, а, например, с помощью массивов, и т.д.
Неактивен