1
我有一個存儲用戶登錄信息的表。 表將用戶的登錄信息存儲到特定系統。因此,當用戶登錄到系統時,它保存在我的表和狀態字段設置爲1mysql-忽略mysql表中的重複值
這是我的表結構:
CREATE TABLE IF NOT EXISTS `login_info` (
`id` int(11) NOT NULL,
`staffID` int(11) NOT NULL,
`logDate` date NOT NULL,
`status` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=latin1;
事情是,一些用戶記錄複製,我試圖避免它們。我的意思是,一些用戶不止一次登錄系統。因此,在特定的一天中,他們可能會有多條記錄,而在另一天,如果他們根本沒有登錄,他們將不會有任何記錄。
我做了數據的樣本:
INSERT INTO `login_info` (`id`, `staffID`,`logDate`, `status`) VALUES
(1, 100, '2016-10-01',1),
(2, 100, '2016-10-01',1),
(3, 100, '2016-10-01',1),
(4, 101, '2016-10-01',1),
(5, 101, '2016-10-01',1),
(6, 102, '2016-10-01',1),
(7, 100, '2016-10-02',1),
(8, 101, '2016-10-02',1),
(9, 101, '2016-10-02',1),
(10, 102, '2016-10-02',1),
(11, 103, '2016-10-02',1),
(12, 100, '2016-10-03',1),
(13, 101, '2016-10-03',1),
(14, 102, '2016-10-03',1),
(15, 103, '2016-10-03',1),
(16, 100, '2016-10-04',1),
(17, 100, '2016-10-04',1),
(18, 102, '2016-10-04',1),
(19, 103, '2016-10-04',1);
你知道,在3次檢查了2016-10-01
ID 100
和工作人員ID 103
人員沒有登錄的。
我試圖爲每一天提取不同的記錄,這不是我以前認爲的方式。
這裏有一個FIDDLE
我試圖
select staffID from login_info WHERE logDate >= '2016-10-01' AND status=1;
和
select logDate from login_info WHERE logDate >= '2016-10-01' AND status=1;
這不是什麼獲取我所期待的。
這就是我想要實現:
id staffID logDate status
3 100 2016-10-01 1
5 101 2016-10-01 1
6 102 2016-10-01 1
7 100 2016-10-02 1
9 101 2016-10-02 1
10 102 2016-10-02 1
11 103 2016-10-02 1
12 100 2016-10-03 1
13 101 2016-10-03 1
14 102 2016-10-03 1
15 103 2016-10-03 1
17 100 2016-10-04 1
18 102 2016-10-04 1
19 103 2016-10-04 1
您有條件指定日期應該從10月2日開始 - 爲什麼您會從10月1日起獲取記錄? – Mureinik
考慮到這是一個錯字。現在糾正它。 @Mureinik –