简体   繁体   English

在mysql中只选择唯一的行

[英]Select only unique rows in mysql

I want to select only rows that are unique according to the column userid from a mysql table. 我想根据mysql表中的列userid只选择唯一的行。 So if I have two rows with the same userid none of them gets selected but if its only one it gets selected. 因此,如果我有两个具有相同用户ID的行,则它们中没有一个被选中,但如果它只有一个被选中。

I use the following code: 我使用以下代码:

SELECT T.id,T.name,T.userid FROM tbltest T WHERE userid NOT IN (SELECT userid FROM tbltest WHERE tbltest.id<>T.id);

Is this the fastest way to do it? 这是最快的方法吗?

Thanks! 谢谢!

How is this 这怎么样

SELECT T.id,T.name,T.userid 
FROM tbltest T 
GROUP BY T.userid
HAVING COUNT(T.userid) = 1;

尝试这个:

SELECT T.id, T.name, T.userid, count(*) AS count FROM tbltest GROUP BY T.userid HAVING count = 1;

I don't think that's the fastest way... you could try: 我不认为这是最快的方式......你可以尝试:

SELECT T.id, T.name, T.userid, COUNT(*) AS num 
FROM tbltest T GROUP BY T.userid HAVING num = 1

Or 要么

SELECT T.id, T.name, T.userid, COUNT(*) AS num FROM tbltest T
WHERE NOT EXISTS
(SELECT 1 FROM tbltest T2 WHERE T2.userid = T.userid AND T2.id != T.id)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM