Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день !
У меня код добавляет новую категорию но иногда категорию дублировается как избежать от дублированные
(category 1,23,23)
UPDATE `post` SET `category` = concat(`category`,',','23') WHERE `title` LIKE '%title%'
Отредактированно khalib (05.04.2018 09:40:03)
Неактивен
1. хранить не вместе через запятую, а по одному значению в строке + уникальный индекс
2. в текущей реализации проверять перед обновлением - есть ли такое значение
Неактивен
UPDATE `post` SET `category` = concat(`category`+'+'+'23') WHERE `title` LIKE '%Title%' ?
Неактивен
не понял смысл последнего сообщения
Неактивен
понятно хотите сказать надо разделить тогда движок будет ругатся
Неактивен
здесь я нашел дублирующиеся строки (23,23)
category FROM post GROUP BY category
можно их сливать в одну
Неактивен
решение оказалось простым
UPDATE post SET category = REPLACE (category, ',16', '') WHERE `title` LIKE '%Title%';
UPDATE post SET category = concat('category' ,',16') WHERE `title` LIKE '%Title%';
Неактивен
плохое решение:
Неактивен
vasya написал:
плохое решение:
MariaDB [(none)]> set @cat = '16,22,163';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select @cat;
+-----------+
| @cat |
+-----------+
| 16,22,163 |
+-----------+
1 row in set (0.00 sec)
MariaDB [(none)]> set @cat = REPLACE (@cat, ',16', '');
Query OK, 0 rows affected (0.03 sec)
MariaDB [(none)]> select @cat;
+--------+
| @cat |
+--------+
| 16,223 |
+--------+
1 row in set (0.00 sec)
у меня категории добовляется как (,16) (,22) (,163)
[syntax=mysql]MariaDB [(none)]> set @cat = ',16 ,22, 163';
Неактивен
khalib написал:
у меня категории добовляется как (,16) (,22) (,163)
значит при исходной записи ',16,22,163' после replace получите ',223' -- всё равно ошибка
Неактивен
vasya написал:
khalib написал:
у меня категории добовляется как (,16) (,22) (,163)
значит при исходной записи ',16,22,163' после replace получите ',223' -- всё равно ошибка
да так но у меня категории всего 30 для меня потходит
если есть другое решеные я готов узнать
Неактивен