使用distinct进行MySQL元搜索

时间:2011-09-03 11:13:30

标签: mysql sql

我有如下的SQL搜索:

select distinct user_id from wp_usermeta where ( meta_key='postcode' and meta_value= '3000') or ( meta_key='state' and meta_value= 'vic') or ( meta_key='maternitybg' and meta_value= 'No')

我的问题是如何更改查询以便搜索meta_value 3000,vic和No for user_id?所有行都附加了user_id,这就是为什么我使用不同的函数,因为它清除了重复项。目前的问题是它获得了meta_value为No的所有用户,这不是我想要的,因为我想通过邮政编码和状态进行过滤。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

SELECT user_id FROM wp_usermeta
WHERE ( meta_key='postcode' AND meta_value= '3000') OR
      ( meta_key='state' AND meta_value= 'vic') OR
      ( meta_key='maternitybg' AND meta_value= 'No' )
GROUP BY user_id
HAVING COUNT(DISTINCT meta_key) = 3