[英]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.