I really like your last two ideas, except that I don't want to delete ALL player tags like '#%', I only want to delete those like '#%' if it already exists without the #. Here's my current solution. Does somebody have a more efficient one? SELECT * FROM players WHERE '#' || player_tag IN (SELECT player_tag FROM players WHERE player_tag like '#%')