Блог

Сергей Сенаторов

Name: Sergey Senatorov

FullStack developer

from siberia with love

current: Moscow

Блог Сергея Сенаторова

Убираем подсчет элементов 1С-Битрикс в отдельную таблицу средствами MYSQL

В компоненте каталога 1С-битрикс есть параметр - COUNT_ELEMENTS, который подсчитывает количество элементов в таблице. Если у вас таблица содержит достаточно большое количество значений, выполнения запроса может занимать до нескольких секунд. Как один из вариантов решения можно отключить в компоненте данную опцию и реализовать ее посредствам создания отдельной таблицы, в которой будет храниться информация о количестве элементов в разделах. А обновлять таблицу можно на событиях Битрикс, обновлять скриптом по крону или через триггеры базы данных. Разберем последний. Чтобы произвести подсчет Битрикс делает запрос примерно такого вида:

Замена данных в mysql

Выбрать дубли и заменить https на https:
select CODE, COUNT(ID) as  CNT, GROUP_CONCAT(ID) as ID_LIST
FROM yourtable 
WHERE IBLOCK_ID = 11 GROUP BY CODE HAVING CNT > 1 LIMIT 10
#Заменить 7 на +7
UPDATE yourtable SET `PERSONAL_MOBILE` = CONCAT( '+', `PERSONAL_MOBILE`) WHERE PERSONAL_MOBILE LIKE "7%"
#Заменить 8 на +7
UPDATE yourtable SET `PERSONAL_MOBILE` = CONCAT( '+7', RIGHT(PERSONAL_MOBILE, LENGTH(PERSONAL_MOBILE) - 1)) WHERE PERSONAL_MOBILE LIKE "8%"