Maison > Article > base de données > Quelles sont les méthodes pour supprimer les requêtes en double dans MySQL ?
Dans les données de test ci-dessous, les utilisateurs dont les noms d'utilisateur sont lilei et zhaofeng sont des données en double.
. # 🎜🎜#Le code est le suivant (exemple) :Comme indiqué ci-dessous, les données ont été dédupliquées et une seule donnée en double est conservée. 2. Méthode 2 : Utiliser le groupe parselect distinct user_name,email,address from t_user;
SELECT user_name,email,address FROM t_user GROUP BY user_name, email, address;
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;(2) Si la version de votre base de données est inférieure à MySQL8, utilisez la méthode de classe 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;comme indiqué ci-dessous pour avoir le data Éliminez les doublons et ne conservez qu’une seule donnée en double.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!