mysql 查询检查性别是否全选

mysql query to check if gender selected all

您好,在我的应用程序中,我想根据广告商选择的受众向用户展示广告。目前我正在为用户数据库中的每个用户保存性别。如果用户选择性别男性或女性,广告效果最佳。但我不知道如果用户选择全部作为受众,我该如何修改查询。

我有两个 table。 Promotionaudience。这就是我现在查询的方式

 SELECT p.id
      , v.id
      , a.id
      , a.user_id
      , a.name
      , a.min_age
      , a.max_age
      , a.gender
      , a.created 
   FROM promotion p
   LEFT 
   JOIN video v
     ON v.id = p.video_id 
   LEFT 
   JOIN audience a
     ON a.id = p.audience_id 
  WHERE p.user_id != 17 
    AND a.gender = 'Male'
   

我打算做的是,如果 Audience table 中的 gender 值保存为 all 那么它不应该在查询中检查 male 或 female。无论用户是男性还是女性,它都应该获取所有记录

您在找这样的东西吗?

WHERE .... 
    AND `Audience`.`gender` IN ('All', ?)

问号表示查询的参数,对应于用户的性别。它可能取值 'Male''Female'。如果 audiences 存储 gender'All',无论给定的参数如何,条件总是匹配。