Non. Vous ne pouvez pas spécifier le champ exact avec lequel vous devez faire la distinction. Cela ne fonctionne qu'avec la ligne entière.
À partir de votre problème - faites simplement de votre requête une sous-requête et dans une externe GROUP BY
user_id
SELECT * FROM
(SELECT a.user_id,a.updatecontents as city,b.country
FROM userprofiletemp AS a
LEFT JOIN userattributes AS b ON a.user_id=b.user_id
WHERE typeofupdate='city')
UNION DISTINCT
(SELECT a.user_id,c.city,c.country
FROM userverify AS a
LEFT JOIN userlogin AS b ON a.user_id=b.user_id
LEFT JOIN userattributes AS c ON a.user_id=c.user_id
WHERE b.active=1 AND a.verifycity=0) x
GROUP BY user_id