I've been using the following SQL query to output values from my WordPress user profiles.
$divisions = $wpdb->get_col("
SELECT Distinct(c.meta_value)
FROM $wpdb->usermeta AS r
INNER JOIN $wpdb->usermeta AS y
ON r.user_id = y.user_id
INNER JOIN $wpdb->usermeta AS g
ON r.user_id = g.user_id
INNER JOIN $wpdb->usermeta AS re
ON r.user_id = re.user_id
INNER JOIN $wpdb->usermeta AS c
ON r.user_id = c.user_id
WHERE r.meta_value LIKE '%subscriber%'
AND y.meta_key = 'CERTIFIED_DISPLAY'
AND y.meta_value NOT LIKE 'no'
AND g.meta_key = 'CERTIFIED_CATEGORY'
AND g.meta_value = '$category'
AND re.meta_key = 'dbem_region'
AND re.meta_value = '$region'
AND c.meta_key = 'dbem_school_division'
ORDER BY c.meta_value ASC
");
It worked great until I had to change one of the meta keys ('CERTIFIED_CATEGORY') to an array. That particular field used to be a select box with a single value, and then I changed it to a checkbox list which is an array of values. This is the part of the query I now need to fix:
AND g.meta_key = 'CERTIFIED_CATEGORY'
AND g.meta_value = '$category'
$category
is one of the values in the array. I thought I could just change the '=' to 'LIKE', but it didn't work:
AND g.meta_key = 'CERTIFIED_CATEGORY'
AND g.meta_value LIKE '$category'
I also tried 'IN', but no luck. How can I do this?