How do you use the MySql IN clause

后端 未结 3 631
梦毁少年i
梦毁少年i 2020-12-21 09:05

I am trying to figure out how to use the MySql In cluse with ASP.NET C#. Here is my code

var WebSites = string.Join(\",\", wsl.Select(x => \"\'\" + x.Doma         


        
3条回答
  •  抹茶落季
    2020-12-21 09:23

    I have found the answer. Here it is

        public static IList FindPostsByWebSiteList(string[] urls)
        {
            var pl = new List();
            var urlArray = urls.Select((x,y) => "@url" + y.ToString()).ToArray();
            var urlsJoined = string.Join(",", urlArray);
            string q = string.Format("select Id, Url, Title, Date, ImageUrl from post where WebSiteUrl IN ({0})", urlsJoined);
    
            using (MySqlConnection con = new MySqlConnection(WebConfigurationManager.ConnectionStrings["MySqlConnectionString"].ToString()))
            {
                using (MySqlCommand cmd = new MySqlCommand(q, con))
                {
                    for (int x = 0; x < urlArray.Length; x++)
                    {
                        cmd.Parameters.Add(urlArray[x], MySqlDbType.Text).Value = urls[x];
                    }
    
                    con.Open();
    
                    var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    while (reader.Read())
                    {
                        var p = new Post();
                        p.Id = reader.GetInt32("Id");
                        p.Url = reader.GetString("Url");
                        p.Title = reader.GetString("Title");
                        p.Date = reader.GetDateTime("Date");
                        p.ImageUrl = reader.GetString("ImageUrl");
                        pl.Add(p);
                    }
                    return pl;
                }
            }
        }
    

提交回复
热议问题