如何避免所有记录都有重复的存在,而只得到唯一的记录?

oewdyzsn  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(260)

我的朋友们,
我有一个如下所示的数据库表:

uniqueId,asin,rank
1,abc,1
2,xyz,2
3,abc,1
4,xyz,2
5,opq,3

如您所见,asin(和xyz)是重复的。所以我希望我的查询能够完全避免它们并只返回我(opq)。
致以最诚挚的问候
乌萨马

yftpprvb

yftpprvb1#

我想你需要

select *
from yourtable a
where 1 = (
  select count(*)
  from yourtable
  where a.asin = asin
)

演示

sy5wg1nm

sy5wg1nm2#

not exists 应具有最佳性能:

select t.*
from t
where not exists (select 1
                  from t t2
                  where t2.asin = t.asin and t2.id <> t.id
                 );

为了提高性能,您需要一个索引 (asin, id) .

相关问题