【问题标题】:checking different data value in a same column mysql query?检查同一列mysql查询中的不同数据值?
【发布时间】:2013-08-27 05:37:01
【问题描述】:
id_detail_item id_item   id_detail_item_name
1              1         abc 
2              1         abcd
3              1         cde
4              3         zki
5              3         zkr

如何检查同一个“id_item”中的“id_detail_item_name”是否有两个不同的数据?

我尝试了以下方法,但出现错误:

SELECT id_item FROM table_detail_item WHERE id_detail_item_name='abc' AND id_detail_item_name='abcd';

【问题讨论】:

    标签: mysql database mysqli database-connection relational-database


    【解决方案1】:

    这是因为 AND 运算符意味着必须满足两个条件。

    试试:

    SELECT * FROM table_detail_item 
    WHERE id_item = '1' 
    AND id_detail_item_name IN ('abc', 'abcd');
    

    【讨论】:

    • 你也可以在('abc','abcd')中使用id_detail_item_name
    • 这不能回答问题。这仅检查id_detail_item_name 是“abc”还是“abcd”。如果id_detail_item_names 是 'abc' 和 'cde' 怎么办?
    • 这似乎会得到与使用“或”相同的结果
    【解决方案2】:

    这应该列出所有具有至少两个不同id_detail_item_nameid_item 的条目

    SELECT id_item, MIN(id_detail_item_name) nam1,max(id_detail_item_name) nam2 
    FROM table_detail_item 
    GROUP by id_item HAVING MIN(id_detail_item_name) nam1<MAX(id_detail_item_name)
    

    【讨论】:

      【解决方案3】:

      试试

      select id_item
        from (
                    select min(id_detail_item_name) mmin
                         , max(id_detail_item_name) mmax
                      from table_detail_item
                  group by id_item
             ) agg
       where agg.mmin <> agg.mmax
           ;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-23
        • 1970-01-01
        • 2010-10-11
        • 2015-08-30
        • 1970-01-01
        • 1970-01-01
        • 2018-07-27
        • 2020-04-10
        相关资源
        最近更新 更多