Quantcast
Viewing all articles
Browse latest Browse all 3724

Using WHERE IN (4 replies)

I'm trying to execute an insert query where I do a select and select the records where userId is in the userIds I pass in.

This works in the query editor:
INSERT INTO Table1(DisciplineId, UserId) (SELECT 1, UserId FROM Users WHERE UserId IN (1,2))

This does not work in the query editor and gives the same error that I get in code:
INSERT INTO Table1(DisciplineId, UserId) (SELECT 1, UserId FROM Users WHERE UserId IN ('1,2'))

This is the error:
Truncated incorrect DOUBLE value: '1,2'"

How can I change my code to get the query that works?


My code:
long recordsAffected = 0;

String connectionString = ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connectionString);
String sql = "INSERT INTO facilitators (DisciplineId, UserId)"
+ " (SELECT ?disciplineId, UserId FROM Users"
+ " WHERE UserId IN (?facilitators))";

try
{
using (conn)
{
conn.Open();
using (MySqlCommand cmd = new MySqlCommand(sql, conn))
{
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.AddWithValue("?disciplineId", disciplineId);
cmd.Parameters["?disciplineId"].Direction = System.Data.ParameterDirection.Input;
cmd.Parameters.AddWithValue("?facilitators", facilitators);
cmd.Parameters["?facilitators"].Direction = System.Data.ParameterDirection.Input;
recordsAffected = cmd.ExecuteNonQuery();
}
}

return recordsAffected;
}

Viewing all articles
Browse latest Browse all 3724

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>