I'm in need of someone who knows MySQL better than I do! I've started writing a custom statement, but I'm not an expert with mySQL and it's not quite there (I'm happy to scrap it entirely if there's a better way to do it!)
Here's what I'm trying to do...
Retrieve a SINGLE user_id where the users meta_key
_wcv_store_icon_id has a value (not including empty string).
The results must be ordered by
The issue I'm having is that
promo_count might not exist, but I'd like Lower (or non-existing
promo_count to come first)
What I currently have:
SELECT u1.`user_id` FROM `wp_usermeta` u1 LEFT JOIN `wp_usermeta` u2 ON u1.`user_id` = u2.`user_id` WHERE (u1.`meta_key` = '_wcv_store_icon_id' AND u1.`meta_value` <> '') AND u2.`meta_key` = 'promo_count' GROUP BY u1.`user_id` ORDER BY u2.`meta_value` ASC LIMIT 1
For the record, I originally tried doing this with get_users but I simply couldn't get it working with any combination of meta_key, meta_value, or meta_query parameters... I think a custom query is definitely the way to go here, however I don't know enough to get it working.
Any suggestions are welcome! I'm at the end of my tether with this one :(