HolySaint 11 Опубликовано 17 января, 2018 Всем привет. Подскажите не могу разобраться с запросом. Мне нужно удалить и дропа ЛС и ФА из всех мобов кроме РБ. DELETE FROM droplist WHERE itemId='6673,8762' FROM npc WHERE type='L2Monster'; - не работает. DELETE FROM droplist WHERE itemId='6673,8762' IN (SELECT id FROM npc WHERE type='L2Monster'); - выполняется, но не чего не удаляет. С меня + Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Falkland 51 Опубликовано 17 января, 2018 (изменено) 17 минут назад, HolySaint сказал: Всем привет. Подскажите не могу разобраться с запросом. Мне нужно удалить и дропа ЛС и ФА из всех мобов кроме РБ. DELETE FROM droplist WHERE itemId='6673,8762' FROM npc WHERE type='L2Monster'; - не работает. DELETE FROM droplist WHERE itemId='6673,8762' IN (SELECT id FROM npc WHERE type='L2Monster'); - выполняется, но не чего не удаляет. С меня + Для начала структуры таблиц в студию. Отбой, где ты нашел такой ИД? Я уверен такого ИД нет. itemId='6673,8762' Если хочешь удалять по множеству id, то используй "IN", а не "=". Изменено 17 января, 2018 пользователем Falkland Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 17 января, 2018 (изменено) 12 минут назад, Falkland сказал: Для начала структуры таблиц в студию. Отбой, где ты нашел такой ИД? Я уверен такого ИД нет. itemId='6673,8762' Если хочешь удалять по множеству id, то используй "IN", а не "=". Пруфы 6673 и 8762 были добавлены ранее в дроп. CREATE TABLE `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', `race` int(11) NOT NULL DEFAULT '-1', `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(8,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(5,0) DEFAULT NULL, `lhand` decimal(5,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', `ss` int(4) DEFAULT '0', `bss` int(4) DEFAULT '0', `ss_rate` int(3) DEFAULT '0', `AI` varchar(8) DEFAULT 'fighter', `drop_herbs` enum('true','false') NOT NULL DEFAULT 'false', PRIMARY KEY (`id`), KEY `I_npc_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `droplist` ( `mobId` int(11) NOT NULL DEFAULT '0', `itemId` int(11) NOT NULL DEFAULT '0', `min` int(11) NOT NULL DEFAULT '0', `max` int(11) NOT NULL DEFAULT '0', `category` int(11) NOT NULL DEFAULT '0', `chance` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`mobId`,`itemId`,`category`), KEY `key_mobId` (`mobId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Изменено 17 января, 2018 пользователем HolySaint Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Falkland 51 Опубликовано 17 января, 2018 (изменено) 10 минут назад, HolySaint сказал: Пруфы 6673 и 8762 были добавлены ранее в дроп. CREATE TABLE `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', `race` int(11) NOT NULL DEFAULT '-1', `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(8,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(5,0) DEFAULT NULL, `lhand` decimal(5,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', `ss` int(4) DEFAULT '0', `bss` int(4) DEFAULT '0', `ss_rate` int(3) DEFAULT '0', `AI` varchar(8) DEFAULT 'fighter', `drop_herbs` enum('true','false') NOT NULL DEFAULT 'false', PRIMARY KEY (`id`), KEY `I_npc_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `droplist` ( `mobId` int(11) NOT NULL DEFAULT '0', `itemId` int(11) NOT NULL DEFAULT '0', `min` int(11) NOT NULL DEFAULT '0', `max` int(11) NOT NULL DEFAULT '0', `category` int(11) NOT NULL DEFAULT '0', `chance` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`mobId`,`itemId`,`category`), KEY `key_mobId` (`mobId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; При чем тут 6673 и 8762, если у тебя указан ОДИН ID, РАВНЫЙ '6673,8662'? Прочитай еще раз, что я написал. DELETE FROM droplist FROM npc WHERE type='L2Monster' AND (itemId='6673' OR itemId='8762'); - внезапно заработает, если условие с типом конечно выполняется. DELETE FROM droplist FROM npc WHERE type='L2Monster' AND itemId IN ('6673','8762'); - заработает еще лучше, конечно же если условие с типом выполняется. UPD: Госпади, сколько там FROM в одном запросе, не заработает это. DELETE FROM droplist WHERE itemId IN ('6673','8762') AND КОЛОНКА_НПЦ_ИД IN (SELECT id FROM npc WHERE type='L2Monster'); Имя колонки с нпц из дроплиста замени на свою. Прежде чем городить подобный бред, нужно хотябы загуглить азы sql. Изменено 17 января, 2018 пользователем Falkland Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 17 января, 2018 1 минуту назад, Falkland сказал: При чем тут 6673 и 8762, если у тебя указан ОДИН ID, РАВНЫЙ '6673,8662'? Прочитай еще раз, что я написал. Я не мастер, я только учусь. Если делать так DELETE FROM droplist WHERE itemId='6673,8762'; удаляет все и у всех вот и пихаю так везде. Если даже использовать один ID все равно не удаляет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Falkland 51 Опубликовано 17 января, 2018 6 минут назад, HolySaint сказал: Я не мастер, я только учусь. Если делать так DELETE FROM droplist WHERE itemId='6673,8762'; удаляет все и у всех вот и пихаю так везде. Если даже использовать один ID все равно не удаляет. О, не заметил структуры таблиц в посте выше. Тогда конечный запрос будет выглядеть так: DELETE FROM droplist WHERE itemId IN ('6673','8762') AND mobId IN (SELECT id FROM npc WHERE type='L2Monster'); 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
HolySaint 11 Опубликовано 17 января, 2018 1 минуту назад, Falkland сказал: О, не заметил структуры таблиц в посте выше. Тогда конечный запрос будет выглядеть так: DELETE FROM droplist WHERE itemId IN ('6673','8762') AND mobId IN (SELECT id FROM npc WHERE type='L2Monster'); Гуглю прежде чем писать, но на примерах легче учиться. Благодарю. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты