Heim > Datenbank > MySQL-Tutorial > Welche Methoden gibt es zum Entfernen doppelter Abfragen in MySQL?

Welche Methoden gibt es zum Entfernen doppelter Abfragen in MySQL?

王林
Freigeben: 2023-05-27 21:23:06
nach vorne
12732 Leute haben es durchsucht

1. Testdaten einfügen

In den Testdaten im Bild unten sind die Benutzer, deren Benutzernamen lilei und zhaofeng sind, doppelte Daten.

Welche Methoden gibt es zum Entfernen doppelter Abfragen in MySQL?

2. Methode zum Entfernen doppelter Daten

1. Methode 1: Verwenden Sie eindeutige

Der Code lautet wie folgt (Beispiel):

select distinct user_name,email,address from t_user;
Nach dem Login kopieren

Wie unten gezeigt, wurden die Daten entfernt und nur 1 Stück der doppelten Daten bleiben erhalten.

Welche Methoden gibt es zum Entfernen doppelter Abfragen in MySQL?

2. Methode 2: Gruppe nach verwenden

SELECT user_name,email,address 
	FROM t_user 
	GROUP BY user_name, email, address;
Nach dem Login kopieren

Wie im Bild unten gezeigt, wurden die Daten dedupliziert und nur 1 Duplikatdaten bleiben erhalten.

Welche Methoden gibt es zum Entfernen doppelter Abfragen in MySQL?

3. Methode 3: Fensterfunktion verwenden

(1) Wenn Ihre Datenbank MySQL8 oder höher ist, können Sie direkt die Fensterfunktion row_number() verwenden

SELECT *
FROM(
    SELECT t.*, 
           ROW_NUMBER() OVER(PARTITION BY user_name
           ORDER BY last_login DESC) rn
    FROM table AS t
	) AS t_user
WHERE rn = 1;
Nach dem Login kopieren

(2) Wenn Ihre Datenbankversion niedriger als MySQL8 ist Mit der Klassenmethode row_number()

select user_name, email, address 
from (
	select 
		b.*,
		@rownum := @rownum+1 ,-- 定义用户变量@rownum来记录数据的行号
		if(@pdept=b.user_name,@rank:=@rank+1,@rank:=1) as rank,-- 如果当前分组user_name和上一次分组user_name相同,则@rank(对每一组的数据进行编号)值加1,否则表示为新的分组,从1开始
		@pdept:=b.user_name -- 定义变量@pdept用来保存上一次的分组id
	from (select * from t_user) b ,
		(select @rownum :=0 , @pdept := null ,@rank:=0) c  -- 初始化自定义变量值
	order by b.user_name,b.last_login desc -- 该排序必须,否则结果会不对
) result
where rank = 1;
Nach dem Login kopieren

, wie unten gezeigt, wurden die Daten dedupliziert und es werden nur 1 Duplikatdaten beibehalten.

Welche Methoden gibt es zum Entfernen doppelter Abfragen in MySQL?

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zum Entfernen doppelter Abfragen in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
So ändern Sie MySQL in MySQL
Aus 1970-01-01 08:00:00
0
0
0
MySQL-Startfehler unter Centos
Aus 1970-01-01 08:00:00
0
0
0
MySQL stoppt den Prozess
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage