mysql 去重方式

2021-10-04 07:25:46 字數 673 閱讀 3472

distinct

group by(不能與order by一起使用,細節看執行計畫)

exists(某些地方推薦,資料越多越好用)

對下面這條語句去重,查詢資料多時優化,資料多不推薦

select 1 from a_r a  

left join t_a_m b on a.id = b.pid

left join t_a_m c on a.id = c.pid

where a.status = '1'   and ((b.tid = 55 and c.tid = 55) or (b.tid = 38 and c.tid = 38)) order by seq desc limit 9

select ar.id from a_r ar where exists (select 1 from a_r a  

left join t_a_m b on a.id = b.pid

left join t_a_m c on a.id = c.pid

where a.status = '1'   and ((b.tid = 55 and c.tid = 55) or (b.tid = 38 and c.tid = 38)) and a.id = ar.id) order by seq desc limit 9

union(不推薦使用 使用 union all)

mysql 去重的兩種方式

使用原則 1 distinct必須放在要查詢欄位的開頭,不能放在查詢欄位的中間或者後面 select distinct name from user 獲取不重名的name 記錄 select id,distinct name from user 這種寫法是錯誤的,distinct只能寫在所有查詢欄位...

mysql去重欄位 mysql多字段去重,並計數

問 題 mysql版本5.5.42 有兩個表,表結構與資料如下 1 goods表 create table goods id int 10 unsigned not null,product varchar 180 collate utf8mb4 unicode ci not null,size v...

陣列物件去重方式

在陣列中都是數字的時候很好去重,例如 var arr 1,2,2,2,3,4,5,4,5,3,6 可以用兩層for迴圈或者其他方式進行去重,在陣列中都是物件的時候就需要設定布林值來進行去重操作,原理也是兩層for迴圈,但是在第一層for迴圈內需要定義布林值為true,用來維持乙個量,之後在內層for...