SQL查询 - 如何从数组中获取值?

时间:2015-07-11 18:26:08

标签: php mysql arrays wordpress

我一直在使用以下SQL查询来输出WordPress用户配置文件中的值。

$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
    ");

在我必须将其中一个元键('CERTIFIED_CATEGORY')更改为数组之前,它一直运行良好。该特定字段曾经是具有单个值的选择框,然后我将其更改为复选框列表,该列表是值数组。这是我现在需要修复的查询的一部分:

AND g.meta_key = 'CERTIFIED_CATEGORY'
AND g.meta_value = '$category'

$category是数组中的值之一。我以为我可以将'='更改为'LIKE',但它不起作用:

AND g.meta_key = 'CERTIFIED_CATEGORY'
AND g.meta_value LIKE '$category'

我也试过'IN',但没有运气。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

我认为您可以使用 mysql_fetch_array 命令。

检查以下链接:PHP.NET

在上面的链接中还有一个例子。希望这有帮助。

答案 1 :(得分:0)

似乎我需要做的就是改变这一行:

AND g.meta_value = '$category'

到此:

AND g.meta_value LIKE '%$category%'

我已经尝试过使用LIKE,但我没有使用变量周围的%符号。显然%是必要的,因为它现在有效。希望我知道更多解释为什么

谢谢!