|
Архив - только для чтения |
| Модератор форума: andycrowz |
| Форум Корзина форума Корзина помощь с запросом по удалению персонажей |
| помощь с запросом по удалению персонажей |
Всем привет, нужен запрос на удаление персонажей, но с двумя одновременно выполняемыми условиями:
1) Удалится должны те кто не заходил допустим больше 100 дней. 2) Общее время игры этим персонажем менее 3 часов. Обязательно нужно, чтобы оба условия были выполнены. Заранее спасибо за помощь.
Сообщение # 1 написано 10.11.2012 в 22:16
|
Quote (Aleksrims) ну вообще конечно лучше чтобы весь мусор от чаров удалить тоже, но это уже можно и потом сделать. Ну, если собрался делать это потом, то запрос: Quote DELETE FROM characters WHERE (UNIX_TIMESTAMP() - logout_time) > 8640000 AND totaltime < 10800; Он удалит персонажей которыми заходили более ста дней назад и играли за персонажа менее трёх часов. Хотя не знаю зачем тут условие про три часа. Ведь если игрок заходил так давно, то он уже точно не вернётся, хоть и играл больше трёх часов. Что бы удалить весь мусор, которого окажется не мало, потребуется ещё нескольких десятков запросов. Просто так писать такое количество тестируя и сверяясь с базой - не хочется. Если есть желание, то можешь отписать мне в скайп и мы обсудим условия компенсации моего времени.
Сообщение # 4 написано 11.11.2012 в 03:18
|
Прадмур, Спасибо за запрос, по поводу условия в 3 часа, мне часто пишут люди которые играли полгода и более назад и интересуются на месте ли их персонаж, всякие ситуации бывают у людей.
К вопросу по поводу мусора, насколько я понимаю после применения этого запроса, можно будет применить следующие для очистки: Quote DELETE FROM `character_action` where guid not in (select guid from `characters`); DELETE FROM `character_aura` where guid not in (select guid from `characters`); DELETE FROM `character_gifts` where guid not in (select guid from `characters`); DELETE FROM `character_homebind` where guid not in (select guid from `characters`); DELETE FROM `character_inventory` where guid not in (select guid from `characters`); DELETE FROM `character_pet` where owner not in (select guid from `characters`); DELETE FROM `character_queststatus` where guid not in (select guid from `characters`); DELETE FROM `character_reputation` where guid not in (select guid from `characters`); DELETE FROM `character_social` where guid not in (select guid from `characters`); DELETE FROM `character_spell` where guid not in (select guid from `characters`); DELETE FROM `character_spell_cooldown` where guid not in (select guid from `characters`); DELETE FROM `character_ticket` where guid not in (select guid from `characters`); DELETE FROM `character_tutorial` where account not in (select account from `characters`); DELETE FROM `corpse` where `player` not in (select guid from `characters`); DELETE FROM `character_inventory` where guid not in (SELECT guid FROM `characters`); DELETE FROM `item_instance` where owner_guid not in (SELECT guid FROM `characters`); Поправьте меня, если я не прав.
Сообщение # 5 написано 11.11.2012 в 07:28
|
Можно. Если тебе нужно удалить все вещи у персонажей.
Конкретно этот запрос: Quote (Aleksrims) DELETE FROM `item_instance` where owner_guid not in (SELECT guid FROM `characters`); Также запрос к character_pet выполнится с ошибкой. Таблиц character_ticket, character_tutorial не существует, есть gm_tickets и account_tutorial соответственно. Остальные можно выполнить, но этого мало. Это не все таблицы.
Сообщение # 6 написано 11.11.2012 в 09:07
|
| |||
| |||
