45 lines
1.6 KiB
MySQL
45 lines
1.6 KiB
MySQL
|
delimiter //
|
|||
|
|
|||
|
CREATE PROCEDURE countMobCardsBySection()
|
|||
|
BEGIN
|
|||
|
DECLARE x INT DEFAULT 0;
|
|||
|
DECLARE I INT DEFAULT 0;
|
|||
|
WHILE I < 10 DO
|
|||
|
SELECT count(*) INTO x FROM (
|
|||
|
SELECT DISTINCT itemid FROM drop_data WHERE itemid >= (2380000 + I*1000) and itemid < (2380000 + (I+1)*1000)
|
|||
|
) AS anysqltab_;
|
|||
|
|
|||
|
insert into `_mob_card_counter` (`keyid`,`count`) values (2380000 + I*1000 , x);
|
|||
|
SET I = I + 1;
|
|||
|
END WHILE;
|
|||
|
END;
|
|||
|
|
|||
|
//
|
|||
|
|
|||
|
delimiter ;
|
|||
|
|
|||
|
CREATE TABLE `_mob_card_counter` (
|
|||
|
`keyid` INTEGER(10),
|
|||
|
`count` INTEGER(10)
|
|||
|
);
|
|||
|
|
|||
|
CALL countMobCardsBySection();
|
|||
|
|
|||
|
# the query below recovers all MAIN mobs that drops card.
|
|||
|
SELECT cardid, mobid FROM monstercarddata LEFT JOIN drop_data ON monstercarddata.cardid = drop_data.itemid WHERE mobid = dropperid;
|
|||
|
|
|||
|
# the query below recovers MISSING cards from mobs that drops card.
|
|||
|
SELECT cardid, mobid FROM monstercarddata WHERE cardid NOT IN (
|
|||
|
SELECT cardid FROM monstercarddata LEFT JOIN drop_data ON monstercarddata.cardid = drop_data.itemid WHERE mobid = dropperid
|
|||
|
);
|
|||
|
|
|||
|
# LENGTHY query that also recovers MISSING cards from mobs that drops card.
|
|||
|
SELECT id FROM handbook WHERE id NOT IN (
|
|||
|
SELECT DISTINCT itemid FROM drop_data
|
|||
|
) AND id>=2380000 AND id<2390000;
|
|||
|
|
|||
|
# retrieves number of drops of each represented mob in the monster book
|
|||
|
SELECT dropperid, count(*) FROM drop_data WHERE dropperid IN (SELECT mobid FROM monstercardwz) GROUP BY dropperid ORDER BY dropperid;
|
|||
|
|
|||
|
# retrieves the rows where the number of drops of those mobs on monsterbook is lacking
|
|||
|
SELECT dropperid, count(*) FROM drop_data WHERE dropperid IN (SELECT mobid FROM monstercardwz) GROUP BY dropperid HAVING count(*) < 5 ORDER BY dropperid;
|