Биллинговая система Nodeny
19 Апреля 2024, 21:24:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Вопрос по MySQL (удаление и сортировка)  (Прочитано 3180 раз)
DenisNikolaich
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 67


Просмотр профиля Email
« : 27 Июня 2018, 07:29:17 »

Доброе время суток, уважаемые форумчане. Стоит вопрос о создании фейкового сервера и прореживании базы. Задача такова:
необходимо из разных услуг удалить определенное кол-во абонентов и подчистить за ними хвосты. Оговорюсь заранее, что с MySQL
туго - очень туго(((, но делал я так:
Делаю дамп с основного сервера и заливаю на фейковый.
Потом удаляю с услуг желаемое кол-во юзеров:
Код:
delete from users where id in (select uid from users_services where service_id = 2) order by rand() limit 60;
ну и подчищаю хвосты:
Код:
delete from data0 where uid not in (select id from users);
delete from pays where mid>0 and mid not in (select id from users);
update ip_pool set uid=0 where uid>0 and uid not in (select id from users);
delete from users_services where uid not in (select id from users);
delete from users_trf where uid not in (select id from users);
delete from auth_log where uid not in (select id from users);
delete from mac_uid where uid>0 and uid not in (select id from users);
update cards set alive='good', uid_activate=0, tm_activate=0  where alive='activated' and uid_activate not in (select id from users);
Вопрос заключается в том что необходимо на фейковом сервере данные обновлять, а пользователи удаляются рандомно, т.е. ситуация
сдампил - накатил - подчистил не прокатит. Возможно ли вместо order by rand() подставить что нибудь постоянное и если можно какие нибудь примеры,
ну очень тугой в MySQL. Заранее огромное спасибо откликнувшимся.
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #1 : 27 Июня 2018, 11:19:00 »

какая задача у фейкового сервера?
эмулировать еще одну сеть?
делай выборку по id/3 к примеру
Записан
DenisNikolaich
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 67


Просмотр профиля Email
« Ответ #2 : 27 Июня 2018, 11:32:19 »

Своего рода да (эмулировать еще одну сеть) как бы для бухгалтерии. А  Вы не могли бы пример команды выборки по id/3 подсказать. Ну совсем плохо в мускуле((.
Записан
DenisNikolaich
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 67


Просмотр профиля Email
« Ответ #3 : 02 Апреля 2019, 10:06:19 »

Уважаемые форумчане! Может ли кто нибудь помочь в решении вопроса с выборкой абонентов с базы данных. Необходимо делать выборку не рандомно. Например в сети работает сервер со 100% пользователей, проходит оплата, снимаются средства и т.д. Но при необходимости запускается фейковый сервер, где пользователей на 30%, например, меньше, но при этом оплата и данные свежие. Получается с рабочего сервака делаю дамп базы, заливаю на фейковый и подчищаю, но очень нужно что бы пользователи после чистки были одни и те же (постоянные). Была подсказка делать выборку по id но с mysql совсем туго. Помогите!!! Заранее благодарю.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #4 : 02 Апреля 2019, 14:43:15 »

10% базы
Код:
select id, name from users where substr(id, -1, 1) < 1;
20% базы
Код:
select id, name from users where substr(id, -1, 1) < 2;
30% базы
Код:
select id, name from users where substr(id, -1, 1) < 3;
Записан
DenisNikolaich
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 67


Просмотр профиля Email
« Ответ #5 : 02 Апреля 2019, 16:28:07 »

Станислав огромное спасибо за ответ. При таком раскладе абоненты будут всегда одинаковые или нет?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #6 : 02 Апреля 2019, 18:15:10 »

Старые - да. Первый sql: "выбрать абонентов у которых в id последний символ меньше единицы, т.е ноль". Id у юзеров не меняются
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!