【问题标题】:Compare same field with multiple values in MySQL SELECT将同一字段与 MySQL SELECT 中的多个值进行比较
【发布时间】:2013-07-17 14:02:04
【问题描述】:

您能告诉我创建以下查询的最佳做法吗?

假设我有一个包含 3 个字段的表格id, owner_id, data。而且我必须执行一个 SELECT 查询,该查询将返回很多人拥有的数据。

我不能使用 OR SELECT data FROM posts WHERE owner_id = x OR owner_id = y,因为当我必须进行查询时,我最终会得到 200 个所有者 ID。

【问题讨论】:

    标签: php mysql select multiple-columns


    【解决方案1】:
    SELECT data
    FROM   posts
    WHERE  owner_id IN (x, y)
    GROUP  BY data
    HAVING COUNT(*) = 2      // number of owners
    

    如果data 不是每个owner_id 唯一的,则需要DISTINCT 关键字。

    HAVING COUNT(DISTINCT owner_id) = 2
    

    【讨论】:

      【解决方案2】:

      你试过了吗

      SELECT data FROM posts WHERE owner_id IN (x,y)
      

      IN 语句可以从数组中生成:)

      【讨论】:

      • 如果它至少归 xy owner_id 所有,这将返回 data
      猜你喜欢
      • 1970-01-01
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多