#1 2012-04-04 11:23

rat
Администратор

FAQ по работе с базой данных

Пожелания по дополнению этой памятки размещайте в комментариях.

WebAsyst Shop-Script

Удаление заказов

Код:

TRUNCATE TABLE `SC_orders`; # удаление заказов
TRUNCATE TABLE `SC_ordered_carts`; # удаление содержимого заказов

Обнуление рейтингов товаров

Код:

UPDATE `SC_products` SET `customers_rating` = 0; # обнуление рейтингов
UPDATE `SC_products` SET `customer_votes` = 0; # обнуление количества голосов

Генерация произвольных рейтингов товаров

Код:

UPDATE `SC_products` SET `customers_rating` = FLOOR(3 + (RAND() * (5 - 3))); # устанавливаем рейтинг товара от 3 до 5
UPDATE `SC_products` SET `customer_votes` = FLOOR(1 + (RAND() * (21 - 1))); # устанавливаем кол-во голосовавших от 1 до 21

Отключение возможности оставлять отзывы о товарах

Код:

UPDATE `SC_divisions` SET `xUnicKey` =  '_discuss_product_' WHERE `xUnicKey` =  'discuss_product';

Увеличение размера текста информационных страниц

Код:

ALTER TABLE  `SC_aux_pages` CHANGE  `aux_page_text_ru`  `aux_page_text_ru` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; # русский язык
ALTER TABLE  `SC_aux_pages` CHANGE  `aux_page_text_en`  `aux_page_text_en` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; # английский язык

Удаление всех товаров из корня каталога

Код:

DELETE FROM `SC_products` WHERE `categoryID` = 1;

Удаление всех товаров с нулевой ценой

Код:

DELETE FROM `SC_products` WHERE `Price` = 0;

Изменение нумерации заказов

Код:

ALTER TABLE  `SC_orders` AUTO_INCREMENT = 123456; # 123456 — число, с которого должна начинаться нумерация заказов (ВАЖНО: оно должно быть заведомо больше текущего максимального номера заказа, но меньше 2 147 483 647, иначе будут возникать проблемы с созданием новых заказов)

Удаление всех отзывов о товарах:

Код:

TRUNCATE TABLE `SC_discussions`;

Изменение порядка сортировки всех товаров на обратный:

Код:

UPDATE `SC_products` `t1`
SET `t1`.`sort_order` = (
  SELECT MAX(`sort_order`) FROM (
    SELECT *
    FROM `SC_products`
  ) `t2`
) - `t1`.`sort_order`

WebAsyst Поддержка

Изменение нумерации запросов

Код:

ALTER TABLE `st_request` AUTO_INCREMENT =123456; # 123456 — число, с которого должна начинаться нумерация запросов (ВАЖНО: оно должно быть заведомо больше текущего максимального номера запроса, но меньше 2 147 483 647, иначе будут возникать проблемы с созданием новых запросов)

Удаление всех запросов, ожидающих подтверждения:

Код:

DELETE FROM `st_request` WHERE `state_id` = 0;

Общее
Узнать файл PHP-класса обработчика адреса с известным ukey, например, feedback

Код:

SELECT CONCAT('published/SC/html/scripts/modules', `modules`.`ModuleClassFile`) as `path`
FROM `SC_modules` `modules`
LEFT JOIN `SC_module_configs` `configs`
USING (`ModuleID`)
WHERE `configs`.`ModuleConfigID` IN(
  SELECT DISTINCT SUBSTR(`xInterface`, 1, POSITION('_' IN `xInterface`)-1)
  FROM `SC_division_interface`
  WHERE `xDivisionID` = (
    SELECT  `xID` 
    FROM  `SC_divisions` 
    WHERE  `xUnicKey` =  'feedback'
  )
)

Неактивен

 

#2 2012-12-24 18:17

shershen08
Пользователь

Re: FAQ по работе с базой данных

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

Неактивен

 

#3 2012-12-25 22:31

www.po.kiev.ua
Пользователь

Re: FAQ по работе с базой данных

shershen08 написал:

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

А импорт из csv не помогает?

Неактивен

 

#4 2013-02-10 03:48

andreus1980
Пользователь

Re: FAQ по работе с базой данных

скажите куда именно вставлять этот код
в базе данных у меня приблезительно такого нет

Код:
UPDATE `SC_products` `t1`
SET `t1`.`sort_order` = (
  SELECT MAX(`sort_order`) FROM (
    SELECT *
    FROM `SC_products`
  ) `t2`
) - `t1`.`sort_order`

Неактивен

 

#5 2013-02-10 10:29

rat
Администратор

Re: FAQ по работе с базой данных

В базе данных вообще нет почти никакого кода — в ней хранятся данные, а не код. SQL-запрос нужно выполнять на вкладке "SQL", предварительно выбрав в левой панели phpMyAdmin название вашей базы данных.

Неактивен

 

#6 2013-02-10 16:52

andreus1980
Пользователь

Re: FAQ по работе с базой данных

понял спасибо

Неактивен

 

#7 2013-04-25 05:47

laspik
Пользователь

Re: FAQ по работе с базой данных

А нет ли возможности удалить часть отзывов о товаре, а не все? Накидало 750 страниц спама, а 10 страниц реальных отзывов.
Это проделал:
Отключение возможности оставлять отзывы о товарах
Код:

UPDATE `SC_divisions` SET `xUnicKey` =  '_discuss_product_' WHERE `xUnicKey` =  'discuss_product';

Добавлять отзывы реально не получается! Это уже хорошо.
Теперь бы нужные оставить, а спам - в помойку

Все, разобрался. Прям там же, в админке базы нашел http://forum.webasyst.ru/uploads/2099_ddddddo_ndonddd_2013-04-25_d_83640.jpg
Удалил все ненужное.
Порядка 16 000 записей было спама. Все почистил.
Как теперь вернуть возможность оставлять отзывы?

Отредактировано laspik (2013-04-25 08:39)

Неактивен

 

#8 2013-11-02 18:36

MickeyMoust
Пользователь

Re: FAQ по работе с базой данных

скажите пожалуйста как теперь вернуть возможность оставлять отзывы?

после этого действия?
UPDATE `SC_divisions` SET `xUnicKey` =  '_discuss_product_' WHERE `xUnicKey` =  'discuss_product';

Неактивен

 

#9 2014-01-28 22:11

www.po.kiev.ua
Пользователь

Re: FAQ по работе с базой данных

laspik написал:

А нет ли возможности удалить часть отзывов о товаре, а не все? Накидало 750 страниц спама, а 10 страниц реальных отзывов.

Это смотря чем реальные отзывы отличаются от спамных.
Например удалить все отзывы о товарах содержащие http

Код:

DELETE FROM `SC_discussions` WHERE `Body` REGEXP 'http'

Неактивен

 

#10 2014-02-03 16:47

zerok
Пользователь

Re: FAQ по работе с базой данных

Было бы классно, если бы тут была ссылка на структуру базы данных (связанность полей и пр - картинка или схемка)

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

Неактивен

 

#11 2014-02-03 16:49

zerok
Пользователь

Re: FAQ по работе с базой данных

MickeyMoust написал:

скажите пожалуйста как теперь вернуть возможность оставлять отзывы?

после этого действия?
UPDATE `SC_divisions` SET `xUnicKey` =  '_discuss_product_' WHERE `xUnicKey` =  'discuss_product';

ну очевидно :

Код:

UPDATE `SC_divisions` SET `xUnicKey` =  'discuss_product' WHERE `xUnicKey` =  '_discuss_product_';

Неактивен

 

#12 2014-11-13 14:35

Drasha
Пользователь

Re: FAQ по работе с базой данных

Добрый день!
Может, не совсем сюда, но есть несколько непоняток именно с БД. Первый вопрос, на котором я застрял - принцип нумерации элементов таблицы. Почему, скажем, в SC_Products productID начинается где-то с 600, а в SC_Product_pictures photoID где-то с 6000? Вообще, есть какая-то система?

Неактивен

 

#13 2014-12-05 17:13

sergfes
Пользователь

Re: FAQ по работе с базой данных

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

Разобрался, проще чем я думал - используем оператор WHERE:
UPDATE `SC_products` SET `customer_votes` = FLOOR( 8 + ( RAND( ) * ( 149 -8 ) ) )  WHERE `customer_votes` = 0;
UPDATE `SC_products` SET `customers_rating` = FLOOR( 4 + ( RAND( ) * ( 5 -3 ) ) )  WHERE `customers_rating` = 0;

Отредактировано sergfes (2014-12-10 17:00)

Неактивен

 

#14 2014-12-13 06:33

www.po.kiev.ua
Пользователь

Re: FAQ по работе с базой данных

Для Shop-Script 5 написание подобного FAQ по работе с БД не планируется?

Например часто после переноса данных есть необходимость удалить все отзывы т.к. до переноса забыли удалить со старого скрипта и перенесли кучу мусора. И т.п.

Неактивен

 

#15 2015-01-31 11:50

dimusichek
Пользователь

Re: FAQ по работе с базой данных

Подскажите пожалуйста запрос sql на чистку discription всех товаров

Неактивен

 

#16 2015-02-08 19:45

investorov
Пользователь

Re: FAQ по работе с базой данных

Подскажите пожалуйста запрос на перенос конкретного заказа (по номеру заказа) в другой статус.

Неактивен

 

#17 2015-04-22 21:44

mihalan
Пользователь

Re: FAQ по работе с базой данных

Подскажите пожалуйтста кто знает, запрос к базе чтобы удалить всех зарегистрированных пользователей магазина ?

Неактивен

 

Board footer

Powered by PunBB