Перейти к содержанию
SerginioWS

Удалить неактивных покупателей через базу данных

Рекомендуемые сообщения

Всем привет.

 

Есть магазин, который работает уже 4-ре года. За время накопилось "ненужных" записей в базе данных, таких как собственно сам покупатель, его адресная информация и т.д.

Из 30 000 зарегистрированных покупателей активных (совершающих покупки) не более 2000.

 

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

 

Заранее благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что такое неактивныЕ?

 

 

 

SELECT * FROM oc_customer WHERE customer_id not in (SELECT customer_id FROM oc_order)

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за отклик.

 

Неактивные - это те, кто зарегистрировался, но так и не совершил покупки.

То есть просто висит мёртвым грузом в базе данных.

 

Если я правильно понял, Ваш запрос сделает выборку необходимых мне покупателей.

 

А если так:

 

DELETE * FROM oc_customer WHERE customer_id not in (SELECT customer_id FROM oc_order)

 

то я их удалю?

Изменено пользователем SerginioWS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, я специально не показал деструктивный запрос

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Если покупатель зарегистрировался 3-4 года назад и не совершил за это время ни одной покупки, думаете он одумается и станет покупать?))

 

Есть крепкий костяк постоянных покупателей - их будет достаточно.

Если кто надумает зарегистрироваться и делать покупки, а не висеть мёртвым грузом в БД, я ведь не против.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего зарегились и забыли.

Напомнить для начала можно о себе. А потом уже удалять, если напоминание не подействует. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

просто поинтересуюсь) а эти "мертвые" пользователи сильно мешают? просто пока не прочитал вашу тему и не задумывался сколько зарегистрированных пользователей на сайте)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

изначально стоит задуматься - откуда такое число "мертвых душ"

если у вас регистрация обязательна при покупке - наверное, стоит предоставить покупателям возможность совершать покупки без нее

 

глядишь, и конверсия поднимется - к примеру, не все готовы выложить свою подноготную для заказа с самовывозом

 

ну и заодно подумать над повторным возвращением клиентов:

в базе уже 30тыс ПОТЕНЦИАЛЬНЫХ клиентов, из которых более-менее постоянных всего 2000 - или не используете потенциал рассылок, или наоборот, используете слишком агрессивно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

изначально стоит задуматься - откуда такое число "мертвых душ"

если у вас регистрация обязательна при покупке - наверное, стоит предоставить покупателям возможность совершать покупки без нее

 

глядишь, и конверсия поднимется - к примеру, не все готовы выложить свою подноготную для заказа с самовывозом

 

ну и заодно подумать над повторным возвращением клиентов:

в базе уже 30тыс ПОТЕНЦИАЛЬНЫХ клиентов, из которых более-менее постоянных всего 2000 - или не используете потенциал рассылок, или наоборот, используете слишком агрессивно

 

Пару лет цена товара не показывалась гостям - так хотела заказчица магазина. Вот и накопилось такое количество желающих "посмотреть цены".

Сейчас цены открыты и потому регистрируются только те, кто хочет купить.

 

SouthBlondi

Рассылку сделал - неделю подожду и затем уже удалю.

 

Gromozybra

Мешают или нет точно не скажу, но куча лишних/ненужных записей в БД мне лично не нравится)))

Изменено пользователем SerginioWS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если удалить записи только из одной таблицы (указанным выше запросом), останется много висячих: поле customer_id встречается в 12 таблицах.

Вообще первый раз такое вижу. Давайте я вам их удалю, а? Бесплатно, аккуратно, полностью. С разрешением сохранить себе удалённое, раз вам не надо.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 06.03.2016 в 14:39, chukcha сказал:

SELECT * FROM oc_customer WHERE customer_id not in (SELECT customer_id FROM oc_order)

в myadmin на mysql 5.5.47 не сработал запрос

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И... что написал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order) LIMIT 0, 30' at line 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ставил LIMIT 0, 30 и с кавычками и без и до скобки ) и запятые ставил и пробелы между каждым символом и после и все бестолку

Изменено пользователем bombucho

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

3 часа назад, bombucho сказал:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order) LIMIT 0, 30' at line 1

 

откуда у вас кавычка перед order?

 

все работает на mysql 5.5, копируйте запрос как @chukcha написал

сначала убедитесь что работает и только потом свои художества добавляйте :ugeek:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

та не..

 SELECT * FROM `customer` WHERE customer_id not in (SELECT customer_id FROM `order`) 

наверное так

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такую реальную базу реальных людей...  и под нож!? :ugeek:

 

Скопируйте и продайте!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, я бы сделал копию
А еще бы отсеял по дате регистрации

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 06.03.2016 в 13:59, SerginioWS сказал:

Всем привет.

 

Есть магазин, который работает уже 4-ре года. За время накопилось "ненужных" записей в базе данных, таких как собственно сам покупатель, его адресная информация и т.д.

Из 30 000 зарегистрированных покупателей активных (совершающих покупки) не более 2000.

 

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

 

Заранее благодарен.

рассылку лучше запусти
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 часов назад, chukcha сказал:

та не..


 SELECT * FROM `customer` WHERE customer_id not in (SELECT customer_id FROM `order`) 

наверное так

)  с кавычками начала работать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 часов назад, AWARO сказал:

рассылку лучше запусти
 

 

рассылка из Админки opencart 1.5.4.1 не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А кто сказал, что надо делать рассылку из админки?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.