代码之家  ›  专栏  ›  技术社区  ›  Mike

Mysql-在数组中选择条件和输入?

  •  -2
  • Mike  · 技术社区  · 10 年前

    我有这样的桌子

    |  idrule  |  idsys  |
    ----------------------
    |R01#1     |     1   |
    |R01#1     |     2   |
    |R01#2     |     1   |
    |R01#2     |     3   |
    |R01#2     |     4   |
    |R01#3     |     2   |
    |R01#3     |     1   |
    |R01#3     |     5   |
    |R01#4     |     1   |
    |R01#4     |     4   |
    |R01#4     |     3   |
    ----------------------
    

    我想在一个输入数组中选择2个条件,如果我想输入(idsys=1和idsys=2),那么输出应该是:

    | idrule |
    ----------
    |R01#1   |
    |R01#3   |
    ----------
    

    有人可以帮忙吗?谢谢

    -----添加问题----- 这就是解决方案:

    SELECT idrule
    FROM tablename
    WHERE idsys IN (1, 2)
    GROUP BY idrule
    HAVING count(*) = 2
    

    我想添加“Where”条件“MAX(somefield)”是否可用?因此代码为:

    SELECT idrule
    FROM tablename
    WHERE MAX(somefiled) and
    idsys IN (1, 2)
    GROUP BY idrule
    HAVING count(*) = 2
    

    但不起作用?有什么想法吗?

    2 回复  |  直到 10 年前
        1
  •  0
  •   John Bupit    10 年前

    你可以这样做:

    SELECT idrule
    FROM tablename
    WHERE idsys IN (1, 2)
    GROUP BY idrule
    HAVING count(*) = 2
    
        2
  •  0
  •   asdf    10 年前
    SELECT idrule 
        FROM *table* t 
            JOIN *table* ct ON t.idrule = ct.idrule 
        WHERE t.idsys=1 AND ct.idsys=2;