Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Программирование / Programming (https://forum.zone-game.info/forumdisplay.php?f=98)
-   -   MySQL скриптик довести до ума (https://forum.zone-game.info/showthread.php?t=12591)

Blast 15.02.2011 02:07

MySQL скриптик довести до ума
 
выставляет уровень доступа перса "-99" у кого атт больше "400"
Собственно подвешивает весь сервер, в оптимизации не силён, будьте добры, ткните носом :)
Код:

UPDATE
characters, items, item_attributes
SET
characters.accesslevel ='-99'
WHERE
item_attributes.elemValue > 400 AND
item_attributes.itemId=items.object_id AND
characters.charId=items.owner_id


SunnyX 15.02.2011 17:27

Re: MySQL скриптик довести до ума
 
Полумера. Исправляй исходы, что бы больше 400 не ставилось, или затирай вообще такие аугментации.

Blakkky 15.02.2011 17:40

Re: MySQL скриптик довести до ума
 
Может так повеселее будет?
Код:

UPDATE
characters
inner join items on (characters.charId=items.owner_id)
inner join  item_attributes on (item_attributes.itemId=items.object_id)
SET
characters.accesslevel ='-99'
WHERE
item_attributes.elemValue > 400

еще неплохо бы проверить, есть ли индексы на characters.charId, items.owner_id, item_attributes.itemId, items.object_id и если нету, то добавить.

Place 15.02.2011 19:47

Re: MySQL скриптик довести до ума
 
ага а теперь клепай еще пару запрос для у кого больше 3х аттрибутов в шмотке, или больше 1 атрибута в пухе,

:)

Blast 15.02.2011 23:22

Re: MySQL скриптик довести до ума
 
Пока защиту не купил через пакетхат суют атт в левые вещи, пока хочу так реализовать "демотивацию" этого дела...


JOIN в mysql не использовал, подскажите, будьте добры, как встроить тудаitem_attributes.item_id in (14165,...,58) ещё туда, или тупо в конце в условие добавить?:)

Добавлено через 2 минуты
Хотя ещё лучше - сделать что бы через телнет кикало у кого в определённныйх вещах АТТ - срип раз в минуту будет проверять. Завтра на свежую голову попробую сделать :)


Текущее время: 21:58. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot