Перейти к содержанию
Авторизация  
Dreanilamaster

Ищу Помощи В Создание Сложного Sql Запроса

Рекомендуемые сообщения

Ищу помощи в создание сложного sql запроса (возможно нескольких).

Необходимо у стопки определенных NPC в spawnlist заменить их ID на всего одного NPC.

 

Детальнее по порядку:

1) Находим стопку NPC с например значением их LVL меньше 40

2) В Spawnlist этих найденных NPC параметр npc_templateid у всех заменяем на всего одного NPC допустим id 50000

3) Оригинальные NPC из первого пункта удаляем (у которых LVL < 40).

 

Буду признателен за любую помощь и подсказки!

 

Структура таблицы Npc:

CREATE TABLE IF NOT EXISTS `npc` (
`id` decimal(11,0) NOT NULL DEFAULT '0',
`idTemplate` int(11) NOT NULL DEFAULT '0',
`name` varchar(200) DEFAULT NULL,
`serverSideName` int(1) DEFAULT '0',
`title` varchar(45) DEFAULT '',
`serverSideTitle` int(1) DEFAULT '0',
`class` varchar(200) DEFAULT NULL,
`collision_radius` decimal(5,2) DEFAULT NULL,
`collision_height` decimal(5,2) DEFAULT NULL,
`level` decimal(2,0) DEFAULT NULL,
`sex` varchar(6) DEFAULT NULL,
`type` varchar(20) DEFAULT NULL,
`attackrange` int(11) DEFAULT NULL,
`hp` decimal(8,0) DEFAULT NULL,
`mp` decimal(5,0) DEFAULT NULL,
`hpreg` decimal(8,2) DEFAULT NULL,
`mpreg` decimal(5,2) DEFAULT NULL,
`str` decimal(7,0) DEFAULT NULL,
`con` decimal(7,0) DEFAULT NULL,
`dex` decimal(7,0) DEFAULT NULL,
`int` decimal(7,0) DEFAULT NULL,
`wit` decimal(7,0) DEFAULT NULL,
`men` decimal(7,0) DEFAULT NULL,
`exp` decimal(9,0) DEFAULT NULL,
`sp` decimal(8,0) DEFAULT NULL,
`patk` decimal(5,0) DEFAULT NULL,
`pdef` decimal(5,0) DEFAULT NULL,
`matk` decimal(5,0) DEFAULT NULL,
`mdef` decimal(5,0) DEFAULT NULL,
`atkspd` decimal(3,0) DEFAULT NULL,
`aggro` decimal(6,0) DEFAULT NULL,
`matkspd` decimal(4,0) DEFAULT NULL,
`rhand` decimal(4,0) DEFAULT NULL,
`lhand` decimal(4,0) DEFAULT NULL,
`armor` decimal(1,0) DEFAULT NULL,
`walkspd` decimal(3,0) DEFAULT NULL,
`runspd` decimal(3,0) DEFAULT NULL,
`faction_id` varchar(40) DEFAULT NULL,
`faction_range` decimal(4,0) DEFAULT NULL,
`isUndead` int(11) DEFAULT '0',
`absorb_level` decimal(2,0) DEFAULT '0',
`absorb_type` enum('FULL_PARTY','LAST_HIT','PARTY_ONE_RANDOM') NOT NULL DEFAULT 'LAST_HIT',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

 

Структура таблицы Spawnlist:

CREATE TABLE IF NOT EXISTS `spawnlist` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`location` varchar(40) NOT NULL DEFAULT '',
`count` int(9) NOT NULL DEFAULT '0',
`npc_templateid` int(9) NOT NULL DEFAULT '0',
`locx` int(9) NOT NULL DEFAULT '0',
`locy` int(9) NOT NULL DEFAULT '0',
`locz` int(9) NOT NULL DEFAULT '0',
`randomx` int(9) NOT NULL DEFAULT '0',
`randomy` int(9) NOT NULL DEFAULT '0',
`heading` int(9) NOT NULL DEFAULT '0',
`respawn_delay` int(9) NOT NULL DEFAULT '0',
`loc_id` int(9) NOT NULL DEFAULT '0',
`periodOfDay` decimal(2,0) DEFAULT '0',
PRIMARY KEY (`id`),
KEY `key_npc_templateid` (`npc_templateid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=191271 ;
Изменено пользователем Dreanilamaster

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  1. UPDATE npc SET idTemplate= 5000 WHERE npc.level<40;
  2. UPDATE Spawnlist SET npc_templateid= 5000;
  3. DELETE FROM npc WHERE npc.level>40;

Изменено пользователем L2Unique
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  1. UPDATE npc SET idTemplate= 5000 WHERE npc.level<40;
  2. UPDATE Spawnlist SET npc_templateid= 5000;
  3. DELETE FROM npc WHERE npc.level>40;

Спасибо!!!) Тему можно закрывать)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...