1

我想从“视频”表中选择最新的视频。我正在使用 PostgreSql Db 和 Npgsql 数据提供程序。我的应用程序在 Asp.net 中。

用户 ID 在列表 - userid_list 中。无论哪个人的 id 在列表中,只需要对他们的视频进行排序。

我将查询返回的所有记录存储在名为“videos_list”的列表中。

问题是视频是按用户 ID 排序的,即视频按一个 id 的 desc 顺序排列,然后是下一个,依此类推,但我不希望这样。我想检索这些 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));

            }
     }

任何帮助,将不胜感激。

4

1 回答 1

0

您已经对其进行了设计,以便循环访问用户并按降序检索他们的视频,然后将它们作为一个组添加到列表中。

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. 将您的结果(以任何顺序)添加到一个大列表中,然后按时间降序对其进行排序,尽管这样不太友好。
于 2012-12-20T11:16:14.417 回答