Mysql
 sql >> база данни >  >> RDS >> Mysql

Предаване на списък в SQL параметър

Можете да параметризирате всяка стойност в списъка в IN клауза:

List<string> names = new List<string> { "john", "brian", "robert" };
string commandText = "DELETE FROM Students WHERE name IN ({0})";
string[] paramNames = names.Select(
    (s, i) => "@tag" + i.ToString()
).ToArray();

string inClause = string.Join(",", paramNames);
using (var command = new SqlCommand(string.Format(commandText, inClause), con))
{
    for (int i = 0; i < paramNames.Length; i++)
    {
        command.Parameters.AddWithValue(paramNames[i], names[i]);
    }
    int deleted = command.ExecuteNonQuery();
} 

което е подобно на:

"... WHERE Name IN (@tag0,@tag1,@tag2)"

command.Parameters["@tag0"].Value = "john";
command.Parameters["@tag1"].Value = "brian";
command.Parameters["@tag2"].Value = "robert";

Адаптирано от:https://stackoverflow.com/a/337792/284240




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обобщени таблици PHP/MySQL

  2. защо varbinary вместо varchar

  3. Мога ли да въведа парола веднъж за множество извиквания на командния ред на mysql, при които заявките не са известни предварително?

  4. Извлечете датата и я преобразувайте в конкретна часова зона според часовата зона на потребителя

  5. MysqlDump от Powershell и Windows кодиране