Массовое добавление тега к записям

InstantCMS 2.X
#1 19 июня 2019 в 15:48
Нужно к записям определённой категории дописать тег. Начитался, что в базе можно дополнять тексты в ячейках. Сделал так:

  1. update `cms_con_places` set `tags`= concat(tags,'ослиные ушки нарасхват') where category_id ='184'
На вкладке "SQL" вставил в поле и нажал "Вперёд". Процесс какой-то прошёл, но ничего с нужными записями не произошло и отобразилось такое сообщение:

MySQL вернула пустой результат (т.е. ноль строк).


А ведь там несколько записей. Видимо запрос не верно составлен?
#2 19 июня 2019 в 16:04

Видимо запрос не верно составлен?

Yar
Запрос верно составлен. А там точно есть записи, у которых категория 184 ?

Попробуйте так:
  1. UPDATE `cms_con_places` SET `tags`= concat(tags,', ослиные ушки нарасхват') WHERE category_id = 184
#3 19 июня 2019 в 17:48
Ris, сбасибо. Сделал так:
  1. UPDATE `cms_con_places` SET `tags`= concat(tags, ", ослиные ушки нарасхват") WHERE `category_id` = 276
Оказывается, что код, принципе, работал, только в той категории записей-то и не было, как оказалось… scratch

Отдельное спасибо за запятую и пробел пред текстом. Вы смотрите на шаг вперёд. Иначе пришлось бы мне потом делать шаг назад…
#4 19 июня 2019 в 19:06
Тег в нужных записях добавился. Вот только при переходе на него с любой записи попадаем на 404. Кнопку "Пересчитать теги" нажимал. Одну запись пересохранил и для неё тег заработал. Он появился в компоненте "Теги", но только с одной записью — пересохранённой. Что нужно ещё сделать? Пересохранять каждую запись не вариант.
#5 19 июня 2019 в 19:09

Что нужно ещё сделать?

Yar
Заполнить таблицу cms_tags и cms_tags_bind
#6 19 июня 2019 в 20:02
А что там и как нужно сделать?
#7 19 июня 2019 в 22:55
Попробуйте так:
  1. INSERT INTO `cms_tags`(`tag`, `frequency`) SELECT 'ослиные ушки нарасхват', COUNT(*) FROM `cms_con_places` WHERE `category_id` = 276;
  2. INSERT INTO `cms_tags_bind`(`tag_id`, `target_controller`, `target_subject`, `target_id`) SELECT t.id, 'content', 'places', p.id FROM `cms_tags` t
  3. JOIN `cms_con_places` p WHERE t.tag = 'ослиные ушки нарасхват' AND p.category_id = 276;
  4.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.