根据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));
            }
     }

根据datetime在asp.net中从postgresql DB中排序记录

您已经将其设计为循环遍历用户并按降序检索他们的视频,然后将它们作为一个组添加到列表中。

User 1
    Video 3
    Video 2
    Video 1
User 2
    Video 6
    Video 5
    Video 4

您应该执行以下操作之一

  1. 修改SQL命令一次过滤所有用户(即"User_ID" = A or "User_ID" = B ...然后按时间排序)
  2. 将您的结果(以任何顺序)添加到一个大列表中,然后然后按降序排序,尽管这不太亲切。