전에 다음 표는 내가MySQL의 순서는 DAY (타임 스탬프)에 의해 그룹
+-----+------+--------+----------+----------+---------------------+
| id | type | dwable | actionby | actionto | time |
+-----+------+--------+----------+----------+---------------------+
| 256 | 1 | 372 | 5 | 1 | 2016-09-15 13:04:13 |
| 253 | 1 | 307 | 5 | 1 | 2016-09-15 13:04:12 |
| 55 | 1 | 416 | 4 | 1 | 2016-09-15 13:04:09 |
| 38 | 1 | 309 | 4 | 1 | 2016-09-12 13:04:01 |
| 42 | 1 | 373 | 4 | 1 | 2016-09-10 13:04:08 |
+-----+------+--------+----------+----------+---------------------+
이 ID를 생략을 얻으려고
CREATE TABLE `uc_likes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` int(255) NOT NULL,
`dwable` int(255) NOT NULL,
`actionby` int(255) NOT NULL,
`actionto` int(255) NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=257 ;
INSERT INTO `uc_likes` (`id`, `type`, `dwable`, `actionby`, `actionto`, `time`) VALUES
(38, 1, 309, 4, 1, '2016-09-12 13:04:01'),
(41, 1, 372, 4, 1, '2016-09-15 13:04:07'),
(42, 1, 373, 4, 1, '2016-09-10 13:04:08'),
(55, 1, 416, 4, 1, '2016-09-15 13:04:09'),
(253, 1, 307, 5, 1, '2016-09-15 13:04:12'),
(256, 1, 372, 5, 1, '2016-09-15 13:04:13');
SELECT * FROM uc_likes;
+-----+------+--------+----------+----------+---------------------+
| id | type | dwable | actionby | actionto | time |
+-----+------+--------+----------+----------+---------------------+
| 38 | 1 | 309 | 4 | 1 | 2016-09-12 13:04:01 |
| 41 | 1 | 372 | 4 | 1 | 2016-09-15 13:04:07 |
| 42 | 1 | 373 | 4 | 1 | 2016-09-10 13:04:08 |
| 55 | 1 | 416 | 4 | 1 | 2016-09-15 13:04:09 |
| 253 | 1 | 307 | 5 | 1 | 2016-09-15 13:04:12 |
| 256 | 1 | 372 | 5 | 1 | 2016-09-15 13:04:13 |
+-----+------+--------+----------+----------+---------------------+
http://sqlfiddle.com/#!9/62794a
uc_likes
를 불렀다 41
행은 이미 같은 날 기간 (15 일) 내에 동일한 dwable 값을 갖는 나중 항목을가집니다. 마찬가지로 id 41
행에 14 번째 타임 스탬프가 있으면 예를 들어 포함되어야합니다. 다른 답변은 내가 다음과 같이 그룹화 전에 주문 하위 쿼리를 사용하여 시도했다 제안으로
:
SELECT * FROM
(SELECT * FROM `uc_likes` WHERE `actionto` = 1 ORDER BY time DESC)
AS t GROUP BY DAY(time), dwable order by time DESC;
그러나 이것은 여전히 ID 256
을 통해 ID 41
을 선택합니다. 결과는 아래를 참조하십시오 :
+-----+------+--------+----------+----------+---------------------+
| id | type | dwable | actionby | actionto | time |
+-----+------+--------+----------+----------+---------------------+
| 256 | 1 | 372 | 5 | 1 | 2016-09-15 13:04:13 |
| 253 | 1 | 307 | 5 | 1 | 2016-09-15 13:04:12 |
| 55 | 1 | 416 | 4 | 1 | 2016-09-15 13:04:09 |
| 38 | 1 | 309 | 4 | 1 | 2016-09-12 13:04:01 |
| 42 | 1 | 373 | 4 | 1 | 2016-09-10 13:04:08 |
+-----+------+--------+----------+----------+---------------------+
당신이 예제의 sqlfiddle (sqlfiddle.com)를 만드는 것이 더 낫다하시기 바랍니다. 그래서, 우리는 당신의 문제를 재현 할 수 있습니다. – geeksal
http://sqlfiddle.com/#!9/62794a @Strawberry – Ben
@geeksal done. 나는 전에 그것을 사용한 적이 없기 때문에 나는 그것을 올바르게했다는 것을 희망한다. – Ben