2015-02-06 2 views
1

Я искал, есть ли селектор MySQL, который позволит мне выбрать один столбец, если другой имеет другое значение.Группа MySQL по одному столбцу, если другой изменился?

Пример:

id name value 
---------------- 
1 john 1 
2 craig 1 
3 john 2 

Итак, что я смотрел бы сделать, это выбрать обе строки 1 и 3, так как они имеют один и тот же name и value изменилось.

Если это невозможно, я могу разобрать все результаты в коде, но если MySQL может сделать это для меня, еще лучше!

+0

Возможно ли, что у вашей таблицы есть еще одна строка: '4, craig, 1'? я имею в виду две строки с одинаковыми значениями_ – RubahMalam

ответ

1

Попробуйте это:

Select * from `table` where Name in (
select name from `table` Group by Name having Count(*)>1) 

Внутренних выберите Looks для имен, которые существуют более чем один в вашей таблице, а внешний выбор - получить данные для этого имени.

0

Вы можете выбрать все имена, которые имеют больше значения, а затем все строки с этими именами:

SELECT * 
FROM mytable 
WHERE name IN (SELECT name 
       FROM  mytable 
       GROUP BY name 
       HAVING COUNT(*) > 1) 
0

это может сработать;

select * from table a 
where exists 
(select b.id from table b 
where a.name = b.name and a.value <> b. value) 
Смежные вопросы