首页 > 解决方案 > php mysqli 从重复和部分重复的行中选择唯一的行

问题描述

我有一个像

lvl0        lvl1            lvl2         lvl3
jfierf4jfi  personifi6916   dentari54    knead314                                               
jfierf4jfi  personifi6916   dentari54    traf8                                              
jfierf4jfi  personifi6916   herculeses4                                                 
jfierf4jfi  personifi6916   dentari54                                                   
jfierf4jfi  personifi6916

lvl0列在哪里lvl3。像这样有 14 列,其中未填充的列值为NULL. 我只想选择最长的唯一行,消除所有部分重复的行。

从给定的数据中我想提取这个

lvl0        lvl1            lvl2         lvl3
jfierf4jfi  personifi6916   dentari54    knead314                                               
jfierf4jfi  personifi6916   dentari54    traf8                                              
jfierf4jfi  personifi6916   herculeses4

具有部分重复值的行将被删除。

我已经尝试过DISTINCTGROUP BY但是它们导致所有行都没有消除部分重复的行。

我试过这些

SELECT DISTINCT lvl3,lvl2,lvl1,lvl0 FROM table; 
and 
SELECT * FROM table GROUP BY lvl3,lvl2,lvl1,lvl0;

标签: mysqlgroup-byunique

解决方案


看着你的样品似乎你正在寻找

SELECT DISTINCT lvl0,lvl1,lvl2,lvl3 
FROM table; 
where lvl2 is not null

推荐阅读