繁体   English   中英

我的SQL查询以主键值的降序获取不同的记录

[英]my sql query to fetch distinct records in descending order of primary key value

我正在执行以下查询

SELECT SQL_CALC_FOUND_ROWS movie_id,video_id,created_date 
FROM video_logs 
WHERE user_id = 2693 AND 
    studio_id=223 AND 
    (DATE_FORMAT(created_date,"%Y-%m-%d") BETWEEN "2018-03-16 11:12:12" AND 
    "2018-04-11 20:21:44") 
order by id desc;



+----------+----------+---------------------+
| movie_id | video_id | created_date        |
+----------+----------+---------------------+
|     3751 |     6711 | 2018-04-11 02:19:18 |
|      544 |     2347 | 2018-04-11 14:16:57 |
|      564 |     2367 | 2018-04-11 14:16:08 |
|     1083 |     2998 | 2018-04-11 02:15:21 |
|      544 |     2347 | 2018-04-11 14:14:55 |
|      536 |     2339 | 2018-04-11 14:14:09 |
|     3014 |     5857 | 2018-04-11 01:58:03 |
|     3011 |     5855 | 2018-04-11 13:55:37 |
|     3011 |     5855 | 2018-04-11 13:39:59 |
|     3751 |     6711 | 2018-04-11 01:39:08 |
|     3014 |     5857 | 2018-04-11 01:38:37 |
|     3007 |     5852 | 2018-04-11 13:37:49 |
+----------+----------+---------------------+

我希望在不影响movie_id列顺序的情况下,将上述结果与众不同。

像我的输出应该有movie_id列如下

movie_id

3751 544 564 1083 536 3014 3011 3007

在此先感谢您的帮助。

您需要按电影ID分组。 另外,您可以在创建日期使用MIN()或MAX()来选择当movie_id有多行时显示的内容。

SELECT SQL_CALC_FOUND_ROWS movie_id,video_id,min(created_date) as created_date
FROM video_logs 
WHERE user_id = 2693 AND 
    studio_id=223 AND 
    DATE_FORMAT(created_date,"%Y-%m-%d") BETWEEN "2018-03-16 11:12:12" AND "2018-04-11 20:21:44"
group by movie_id
order by id desc;

通过对列进行分组,然后使用MAX函数获取最新(最高)的日期时间值。

SELECT SQL_CALC_FOUND_ROWS movie_id,video_id,MAX(created_date) as created_date  
FROM video_logs 
WHERE user_id = 2693 AND 
    studio_id=223 AND 
    (DATE_FORMAT(created_date,"%Y-%m-%d") BETWEEN "2018-03-16 11:12:12" AND 
    "2018-04-11 20:21:44") 
GROUP BY SQL_CALC_FOUND_ROWS, video_id
order by id desc;

暂无
暂无

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

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