繁体   English   中英

仅选择唯一记录

[英]Select only unique records

我正在尝试选择表中的所有记录,但隐藏重复的行。 因此,如果2行完全相同(当然,自动递增ID除外),则仅应显示1行。

我认为这必须用不同的方法来完成,但是仍然给我重复的行。

SELECT DISTINCT *
FROM tbllulog
WHERE lulogluserial = $commandlu
ORDER BY `tbllulog`.`tbllulogid` DESC

我也试过这个:

SELECT DISTINCT lulogtimestamp,
                lulogmoveemployee,
                lulogsource,
                lulogaction,
                lulogluoutput0status,
                lulogluinput0status
FROM tbllulog
WHERE lulogluserial = $commandlu
ORDER BY `tbllulog`.`tbllulogid` DESC

但这也给我重复

任何人都可以指出我所缺少的内容吗?

谢谢!

使用DISTINCT GROUP BY并将tbllulogid添加到SELECT

 SELECT DISTINCT tbllulogid,
        lulogtimestamp,
        lulogmoveemployee,
        lulogsource,
        lulogaction,
        lulogluoutput0status,
        lulogluinput0status
   FROM tbllulog 
        WHERE lulogluserial = $commandlu 
        GROUP BY `tbllulog`.`tbllulogid` 
        ORDER BY `tbllulog`.`tbllulogid` DESC

这样尝试

DECLARE @type varchar(50);
DECLARE @num int;
SET @type = '';
SET @num  = 1;

SELECT * FROM
(
SELECT lulogtimestamp,
       lulogmoveemployee,
       lulogsource,
       lulogaction,
       lulogluoutput0status,
       lulogluinput0status
       @num := if(@type = lulogmoveemployee, @num + 1, 1) as row_number,
       @type := lulogmoveemployee As Dummy
FROM tbllulog
WHERE lulogluserial = $commandlu
ORDER BY `tbllulog`.`tbllulogid` DESC
) T WHERE row_number = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM