MySQL为2个或更多id选择重复名称

时间:2015-10-01 10:27:01

标签: mysql sql

我有以下表格:

| id    | name   |
|-------|--------|
| 00001 | Item A |
| 00001 | Item A |
| 00002 | Item B |
| 00003 | Item C |
| 00004 | Item C |

如果我想检查2个或更多不同ID的名称是否相同,我应该使用哪个MySQL查询?我在我的查询中尝试使用LEFT JOINUNION,但我无法让它工作。所以在这种情况下,查询应返回:

| id    | name   |
|-------|--------|
| 00003 | Item C |
| 00004 | Item C |

提前致谢。

6 个答案:

答案 0 :(得分:2)

如果要返回原始行,则需要join返回原始数据:

select t.*
from t join
     (select name, count(distinct id) as cnt
      from t
      group by name
     ) tt
     on t.name = tt.name
where cnt >= 2;

如果您只想要名称,那么子查询就足够了(带有having子句)。

答案 1 :(得分:0)

与自己ON相同的name和不同的id加入表格。

<强>查询

select t1.id,t1.name
from tbl1 t1
join tbl1 t2
on t1.id <> t2.id
and t1.name = t2.name;

SQL Fiddle

答案 2 :(得分:0)

你尝试过这样的事吗?

SELECT *
FROM table_name
GROUP BY name
HAVING count(DISTINCT id) > 1

答案 3 :(得分:0)

试试这个

shared.setValue('somevalue');

答案 4 :(得分:0)

Yourview.setOnTouchListener(new OnTouchListener() {
        // Setting on Touch Listener for handling the touch inside
        // ScrollView
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // Disallow the touch request for parent scroll on touch of
            // child view
            v.getParent().requestDisallowInterceptTouchEvent(true);
            return false;
        }
    });

答案 5 :(得分:0)

试试这个..

select id, name from customers where name in
(select name from customers group by name having count(*) > 1)