Estoy en el proceso de convertir varias consultas que fueron codificadas en la aplicación y construidas sobre la marcha para consultas parametrizadas. Tengo problemas con una consulta en particular, que tiene una in
cláusula:C# Parameterized Query MySQL con la cláusula `in`
UPDATE TABLE_1 SET STATUS = 4 WHERE ID IN (1, 14, 145, 43);
El primer parámetro es fácil, ya que es sólo un parámetro normales:
MySqlCommand m = new MySqlCommand("UPDATE TABLE_1 SET STATUS = ? WHERE ID IN (?);");
m.Parameters.Add(new MySqlParameter("", 2));
Sin embargo, el segundo parámetro es una lista de enteros que representan los identificadores de las filas que necesitan actualización. ¿Cómo paso una lista de enteros para un solo parámetro? De forma alternativa, ¿cómo haría para configurar esta consulta para que no tenga que compilarla por completo cada vez que la llame y pueda evitar los ataques de inyección SQL?
duplicados de http://stackoverflow.com/questions/337704/parameterizing-a-sql-in-clause (aunque eso es servidor SQL en lugar de MySQL ; sin embargo, es poco probable que sea realmente diferente) –
Se reconoció que la solución ofrecida allí era increíblemente lenta, aunque responde la segunda mitad de mi pregunta. – Elie
Hay * muchas * soluciones ofrecidas allí. La respuesta aceptada no es la más popular. –