UPDATE (
SELECT `hash`, MIN(`field`) AS `first`
FROM `table`
GROUP BY `hash`
HAVING COUNT(*) > 1
) AS `t1` ON `t1`.`hash` = `t`.`hash`
JOIN `table` AS `t` ON `t`.`hash` = `t1`.`hash`
AND `t`.`field` <> `t1`.`first`
SET `t`.`hash` = ...
SELECT `s`.*
FROM `servers` AS `s`
JOIN `server_mods` AS `sm1` ON `sm1`.`server_id` = `s`.`server_id` AND `sm1`.`mod_id` = 9
JOIN `server_mods` AS `sm2` ON `sm2`.`server_id` = `s`.`server_id` AND `sm2`.`mod_id` = 1
SELECT *
FROM `servers`
WHERE `server_id` IN (
SELECT `server_id`
FROM `server_mods`
WHERE `mod_id` IN (9, 1)
GROUP BY `server_id`
HAVING COUNT(*) = 2
)