выставляет уровень доступа перса "-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
Полумера. Исправляй исходы, что бы больше 400 не ставилось, или затирай вообще такие аугментации.
Может так повеселее будет?
Код:
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 и если нету, то добавить.
ага а теперь клепай еще пару запрос для у кого больше 3х аттрибутов в шмотке, или больше 1 атрибута в пухе,

Пока защиту не купил через пакетхат суют атт в левые вещи, пока хочу так реализовать "демотивацию" этого дела...
JOIN в mysql не использовал, подскажите, будьте добры, как встроить туда
item_attributes.item_id in (14165,...,58) ещё туда, или тупо в конце в условие добавить?
Добавлено через 2 минуты
Хотя ещё лучше - сделать что бы через телнет кикало у кого в определённныйх вещах АТТ - срип раз в минуту будет проверять. Завтра на свежую голову попробую сделать
