根据datetime在asp.net中从postgresql DB中排序记录
本文关键字:DB 排序 记录 postgresql 中从 datetime asp net 根据 | 更新日期: 2023-09-27 17:49:13
我想从" videos "表中选择最近的视频。我正在使用PostgreSql Db和Npgsql数据提供程序。我的应用程序在Asp.net中。
userid在List - userid_list中。无论哪个人的id在列表中,只需要对他们的视频进行排序。
我将查询返回的所有记录存储在名为"videos_list"的列表中。
问题是,视频得到排序的用户id,即,视频是在desc顺序为一个id,然后下一个等等,但我不想要的。我想检索这些id的所有视频,然后一次对它们进行排序。
string query3 = "Select * from '"Videos'" where '"User_ID'" = :user_id Order by '"DateTimeUploaded'" desc";
NpgsqlCommand cmd3 = new NpgsqlCommand(query3, con);
for (int j = 0; j < userid_list.Count; j++)
{
cmd3.Parameters.AddWithValue("user_id", userid_list[j]);
reader2 = cmd3.ExecuteReader();
while (reader2.Read())
{
string Description = reader2.GetString(reader2.GetOrdinal("Description"));
DateTime DateTimeUploaded = reader2.GetDateTime(reader2.GetOrdinal("DateTimeUploaded"));
videos_list.Add(new VideosJson(Description, Transcript, ThumbnailUrl, VideoUrl, DateTimeUploaded));
}
}
您已经将其设计为循环遍历用户并按降序检索他们的视频,然后将它们作为一个组添加到列表中。
User 1
Video 3
Video 2
Video 1
User 2
Video 6
Video 5
Video 4
您应该执行以下操作之一
- 修改SQL命令一次过滤所有用户(即
"User_ID" = A or "User_ID" = B ...
然后按时间排序) - 将您的结果(以任何顺序)添加到一个大列表中,然后然后按降序排序,尽管这不太亲切。