2014-02-20 8 views
0

Я использую базу данных MYSQL.
У меня есть стол с четырьмя колоннами id, sender, reciever и recieverread; reciever и sender столбцы могут содержать повторяющиеся значения, есть ли способ выбрать только последнюю строку с дублирующимся значением?MYSQL выбрать из таблицы с повторяющимися значениями

Я попытался
SELECT DISTINCT sender FROM msg WHERE sender = sender

+1

Предоставьте 'SHOW CREATE TABLE' для вашей таблицы, а некоторые данные образца – Alexander

+0

. Исходя из каких критериев? – mbroshi

+0

Ваш пример - просто выбрать 'sender'? Откуда вы знаете, из какой строки это происходит? –

ответ

0

Это предотвратит к дублированию данных. Вы можете попробовать это,

SELECT DISTINCT sender FROM msg WHERE sender = sender group by sender 
+0

Вам не нужно выделять тогда .. – Johnny000

1

Вы можете попробовать что-то вроде этого:

SELECT sender FROM msg GROUP BY sender HAVING COUNT(sender) > 1; 
0

Как о:

SELECT MAX(id) AS id_last, sender, receiver, recieverread FROM msg GROUP BY sender, receiver, recieverread 
0

попробовать этот

select maxid ,sender from msg where id in (
         select max(id) as maxid from msg GROUP BY sender) 
+0

Thnx, который отлично работал – user3130014

+0

, вы приветствуете :), обязательно принимайте ответ, как он [говорит здесь] (http://meta.stackexchange.com/questions/5234/how-does -accepting-ан-ответ работа) –

0

стандартный способ Подходите к этому в MySQL с помощьюраздел:

select m.* 
from msg m 
where not exists (select 1 from msg m2 where m2.sender = m.sender and m2.id > m.id); 

То есть, выберите строку для данного отправителя, который не имеет больших идентификаторов в таблице.

Смежные вопросы