So I did this intentionally, and maybe I’m confused as to why this is bad form. The full query is ('UPDATE {wsuser} SET notcurrentlyavailable = 0 WHERE notcurrentlyavailable = 1 AND becomeavailable IS NOT NULL AND becomeavailable < %d', $now). From my understanding and testing, this shouldn’t update all users, it should only update users that meet the criteria for being marked as available (i.e. unavailable with a set ‘become available’ date that has passed.) This query is outside the while loop that emails each of these user’s a notification, so it will only be run once, as opposed to updating each user individually within the loop. I thought this approach would be more efficient?

Although, per your previous comment, this still needs a becomeavailable <> 0 regardless of where it is.