SELECT COUNT(*)
FROM (
SELECT RIGHT(`phone`, 10) AS `p_number`, COUNT(*) AS `p_number_count`
FROM `contacts`
GROUP BY `p_number`
HAVING `p_number_count` > 1
) AS `dupl_p_numbers`
SELECT *
FROM items
WHERE id in (SELECT id_item
FROM items_param
WHERE id_param in (1, 2))
AND id in (SELECT id_item
FROM items_param
WHERE id_param in (3, 5))
И так по условию для каждого набора из входных данных.