Удалить title у всех товаров

Приветствую.

Может кто-то делал уже такое? Нужно удалить тайтлы у всех товаров.

Наверно можно через phpmyadmin, но точно не уверен, не хочется снести всю базу )

11 ответов

  • 1
    replicant 3 мая 2018 13:53 #

    Не боись. Сначала работай со страховкой. Предварительно таблицу продуктов сохрани в том же phpmyadmin под другим именем (копирование таблиц на вкладке Операции в phpmyadmin) и тренируйся.

    Запрос такой

    UPDATE `shop_product` SET `meta_title` = '';
    • +1
      Anton Anton 3 мая 2018 14:33 #

      Спасибо большое, помогло.

      А может вы знаете, как таким же образом через БД проставить всем товарам наличие - бесконечность ?

      • +1
        replicant replicant 3 мая 2018 16:00 #

        Если у всех товаров и их артикулов, то надо делать в двух местах.

        UPDATE `shop_product_skus` SET `count` = NULL;
        и
        UPDATE `shop_product` SET `count` = NULL;
        • +1
          Anton Anton 3 мая 2018 16:38 #

          Спасибо !!!

          А не подскажите, можно ли удалить ссылку в товарах ? Поставщик проставил ссылки в некоторых своих товарах, и при импорте они добавились на мой сайт. Можно как то через БД их удалить ?

          • +1
            replicant replicant 3 мая 2018 17:01 #

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

            Можно сделать все что угодно, но для этого надо понимать в каком поле и что именно надо убирать. Допустим есть ссылки в поле описания товара (надо найти это поле в нужной таблице). Любая гиперссылка имеет признаки <a href="">текст</a>, причем текст внутри порой надо сохранить. Поле описания и поле id товара выбираются из всего объема данных в таблице и дальше текст описания обрабатывается.

            Иногда использовать phpmyadmin для таких задач неудобно да и не нужно, поэтому экспортирую нужные мне поля определенной таблицы в текст, прогоняю через "очиститель" с крепкими выражениями (это может быть даже редактор Notepad++ и тупорылый Найти-Заменить), потом формирую это в виде серии запросов и обновляю поля БД новым текстом. Даже Excel и подобные ему табличные процессоры приходится задействовать для расчистки дампов таблиц. Потом оборачиваем таблицу экселя опять же в текст с запросами и вливаем в БД.

            Если база очень огромная (сотни тысяч или даже миллионы товаров), то можно постараться избежать трудоемкого экспорта-импорта, но в любом случае всю информацию ворочать необходимости нет, а только экспортировать выборку того кусочка, который нужно подвергнуть правке.

            • +1
              Anton Anton 3 мая 2018 17:03 #

              Да, похоже эта задача посложнее будет.

              • +1
                replicant replicant 3 мая 2018 17:10 #

                Не сильно сложнее, но определенные навыки для этого, опыт и даже фантазию надо иметь. В любом случае надо знать как строятся запросы в MySQL и уметь работать в phpmyadmin , а про регулярные выражения Notepad++, в случае использования внешних инструментов для очистки выборки из базы, можно и нагуглить.

    • +1
      Anton Anton 13 декабря 2018 23:06 #

      А не знаете, можно ли убрать у всех товаров из названия определенное слово ?

      • +1
        replicant replicant 14 декабря 2018 08:42 #

        Можно. Вариантов даже несколько. Вроде плагины были массового редактирования, но точно не помню. Поищите. Вдруг они такое умеют.

        Для случая без плагинов, если бы мне пришлось решать данную задачу прямо сейчас, то "на коленке" сделал бы примерно так. Выгрузил названия товаров и ID из БД mysql через phpmyadmin в текстовый файл или с разделителями или даже в таблицу Excel (id, name из таблицы shop_product). Затем прошелся бы поиском и заменой по маске или с помощью регулярки, если случай сложный. После этого заменил бы старую часть в БД новой отредактированной информацией. Надо просто уметь строить запросы в БД и работать в текстовом редакторе или Excel. Это наверное самое сложное в данной задаче.

        Вот пример запроса на обновление названия товара с id =7. Дальше по такой же схеме.

        UPDATE `ваша_база_данных`.`shop_product` SET `name` = 'Новое имя товара' WHERE `shop_product`.`id` =7;

        Перед опытами советую сделать копию нужной таблицы прямо в базе, чтобы быстро подложить её обратно, если что-то вдруг сделаете не так.

    • +1
      Anton Anton 16 июня 2020 17:21 #

      А можете еще подсказать, какой командой можно прописать доп. параметр к товарам определенного бренда ?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите