|
|
Модератор форума: Dimitro |
Форум TrinityCore [TrinityCore] Help Запрос в БД (Скрипт) |
Запрос в БД |
Ув. пользователи форума, помогите/подскажите, мне нужно изменить в шмотках рейтинг скорости и установить к примеру 200, но только в шмотках где рейтинг скорости выше 500.
примерно это так "Update item_template set stat_value1=300 where stat_type=28, 29, 30, 36 Тут не знаю что писать stat_value1=>500 Вообщем нужно установить рейтинг скорости только в тех вещах, в которых рейтинг скорости превышает 500
EvolutiON-WoW 3.3.5 - Тык
Видео сервера EvolutiON-WoW.Ru Часть 1. Видео сервера EvolutiON-WoW.Ru Часть 2.
Сообщение # 1 написано 24.06.2016 в 19:25
|
Код UPDATE item_template set stat_value1 = 300 WHERE stat_type IN (28, 29, 30, 36) AND stat_value1 >= 500;
Продажа готовых сборок cataclysm 4.3.4, legion (7.3.5), shadowlands, draginflight. Исправление спеллов, квестов, крашей на любых версиях вов. Цена договорная. Пишите в лс, не дорого.
Сообщение # 2 написано 25.06.2016 в 01:38
|
Sergey996, это даже не выполнится, не говоря уже о том, что и логика некорректная.
M1sTerY, для стопроцентной точности Вам нужно проверять в каждом предмете каждый `stat_type` и, если он является рейтингом скорости, а соответствующее ему `stat_value` содержит значение выше '500', устанавливать его равным '200'. Пример условия: Код ... `stat_typeX` IN ('28', '29', '30', '36') AND `stat_typeX` > '500' ... где 'X' в названии поля - индекс в интервале [1, 10].
Сообщение # 3 написано 25.06.2016 в 16:01
|
Еще вопросы? Все выполняется. stat_type сделано как у автора специально, я же не знаю какая у его сборка.
Продажа готовых сборок cataclysm 4.3.4, legion (7.3.5), shadowlands, draginflight. Исправление спеллов, квестов, крашей на любых версиях вов. Цена договорная. Пишите в лс, не дорого.
Сообщение # 4 написано 26.06.2016 в 20:39
|
UPDATE item_template set `stat_value1` = '300' WHERE `stat_type1` IN (28, 29, 30, 36) AND `stat_value1` >= '500';
UPDATE item_template set `stat_value2` = '300' WHERE `stat_type2` IN (28, 29, 30, 36) AND `stat_value2` >= '500'; UPDATE item_template set `stat_value3` = '300' WHERE `stat_type3` IN (28, 29, 30, 36) AND `stat_value3` >= '500'; UPDATE item_template set `stat_value4` = '300' WHERE `stat_type4` IN (28, 29, 30, 36) AND `stat_value4` >= '500'; UPDATE item_template set `stat_value5` = '300' WHERE `stat_type5` IN (28, 29, 30, 36) AND `stat_value5` >= '500'; UPDATE item_template set `stat_value6` = '300' WHERE `stat_type6` IN (28, 29, 30, 36) AND `stat_value6` >= '500'; UPDATE item_template set `stat_value7` = '300' WHERE `stat_type7` IN (28, 29, 30, 36) AND `stat_value7` >= '500'; UPDATE item_template set `stat_value8` = '300' WHERE `stat_type8` IN (28, 29, 30, 36) AND `stat_value8` >= '500'; UPDATE item_template set `stat_value9` = '300' WHERE `stat_type9` IN (28, 29, 30, 36) AND `stat_value9` >= '500'; UPDATE item_template set `stat_value10` = '300' WHERE `stat_type10` IN (28, 29, 30, 36) AND `stat_value10` >= '500';
Сообщение # 5 написано 26.06.2016 в 23:31
|
Сообщение # 6 написано 27.06.2016 в 13:09
|
= используется когда единственное значение. Если же выбор состоит из одного или нескольких значений, как у Вас, то используется in (), в скобках через запятую указываются значения. Если же условий несколько, то используется AND и задаётся новое условие, использовать можно много. Если вдруг понадобится изменить значение нескольких полей в одном запросе, это делается в SET также через запятую.
Сообщение # 7 написано 28.06.2016 в 05:10
|
| |||
| |||