Update: Jeff Scott totally nailed me on this one:
You may already know this one, but if you don’t, it’s pretty handy.
I have a typical blogger’s inbox, with about 80k messages just from this year. Running searches in GMail only lets you act on 20 messages at a time, so mass label changes, moves, or mark-as-read actions can take forever. I figured there had to be a better way, and there was.
If you go into “Create a Filter,” you can define an advanced boolean search to find all of the messages you want to act on. Put the boolean search into the “Has the Words:” field, and it will function as expected. In my case, I wanted to remove a label from all of the messages in a given inbox, except for ones which I’d starred, so my search was “label:lists-tuaw -is:starred”.
If all you want to do is mass mark a bunch of messages as “read,” you’re pretty much done. Test the search, and then at the top of the search results, just hit “Mark as read.” If you want to do something more advanced, test your search and then continue to the “Next Step.” Ignore the warning about not using “is:” filters, etc., we’ll be deleting the filter before it acts on incoming messages anyway.
Here, you can set up all of the things you’d like to do to the messages matching your search. Archive them, label them, forward or delete them, etc. Then, just check the “Also apply filter to xxxx messages below” checkbox and hit “Create Filter.” WARNING: if you’re working with thousands of messages, your chance of “undoing” your change is pretty slim, so proceed cautiously. When you’re done, just delete the filter. Mass edit complete!