После создания интернет-магазина на Joom Shopping следующим этапом встает вопрос заполнения его товарами. И как это часто бывает, такие товары у Вас есть в какой-нибудь сторонней базе, из которой с помощью парсера или ещё каким-то чудным образом Вы заливаете данные в Вашу таблицу товаров. Сегодня я не буду останавливаться на структуре Joomla Джумшоппинг, и том какие таблицы играют главную роль в отображении списка товаров, а рассмотрю решение частой проблемы: Вы случайно загрузили дубликаты (повторяющиеся строки) товаров в Вашу таблицу. Что с ними делать?

Если одинаковые товары у Вас совпадают по имени `name_ru-RU`, то Вас спасет вот такой запрос:

delete from q3j5c_jshopping_products where `product_id` in (
select mpi from (select min(`product_id`) as mpi, `name_ru-RU`, count( `name_ru-RU`) as cn from `q3j5c_jshopping_products` group by `name_ru-RU` order by cn desc) as tbl1 where cn>=2)

Смысл его в следующем: сначала делается сгруппированная выборка по товарам в виде:

минимальный идентификатор товара min(`product_id`) <-> имя товара (`name_ru-RU`) <-> количество повторений count(),

причем отбираются только строки с именами, повторяющимися 2 и более раз.

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

И строки с этими идентификаторами удаляются.

Успешного Вам кодинга!

Add comment


Security code
Refresh