[英]Select only unique rows in mysql
我想根據mysql表中的列userid只選擇唯一的行。 因此,如果我有兩個具有相同用戶ID的行,則它們中沒有一個被選中,但如果它只有一個被選中。
我使用以下代碼:
SELECT T.id,T.name,T.userid FROM tbltest T WHERE userid NOT IN (SELECT userid FROM tbltest WHERE tbltest.id<>T.id);
這是最快的方法嗎?
謝謝!
這怎么樣
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;
我不認為這是最快的方式......你可以嘗試:
SELECT T.id, T.name, T.userid, COUNT(*) AS num
FROM tbltest T GROUP BY T.userid HAVING num = 1
要么
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.