How can I delete all users which have never commented / have posted spam comments?

Hi @Nick Loman:

There is not one command, but several. Be care though to back up your database before running this because there’s a tiny chance something in your database differs from mine, especially after a .1 upgrade beyond 3.0 and thus it may not work perfectly and you’ll have to restore.

DELETE FROM wp_usermeta WHERE user_id IN (
  SELECT user_id FROM wp_comments WHERE user_id<>0 AND comment_approved='spam' 
) AND user_id NOT IN (
  SELECT DISTINCT user_id FROM wp_comments
);
DELETE FROM wp_users WHERE ID IN (
  SELECT user_id FROM wp_comments WHERE user_id<>0 AND comment_approved='spam' 
) AND ID NOT IN (
  SELECT DISTINCT user_id FROM wp_comments
);
DELETE FROM wp_commentmeta WHERE comment_id IN (
  SELECT comment_ID FROM wp_comments WHERE comment_approved='spam' 
);
DELETE FROM wp_comments WHERE comment_approved='spam';