【问题标题】:C# & MySQL : Delete ExistsC# & MySQL:删除存在
【发布时间】:2017-04-03 17:52:24
【问题描述】:

我正在尝试删除列,但我不断收到以下错误:

MySql.Data.MySqlClient.MySqlException:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 'EXISTS(DELETE 1 FROM stock WHERE steamId = 'MyIDGoesHere' AND stock =' 附近使用正确的语法

我的代码:

command.CommandText = "DELETE EXISTS(DELETE 1 FROM `" + Main.Instance.Configuration.Instance.DatabaseTableName + "` WHERE `steamId` = '" + id + "' AND `stock` = '" + stock + "' LIMIT 1);";

请帮我解决这个问题。谢谢!

【问题讨论】:

  • 你有什么理由只删除第一条记录吗?
  • @dana 现在只有一条记录。但是是的。
  • 但一般情况下,是否可以删除所有符合条件的记录?如果不是,那么是什么决定了要删除的受害者记录?
  • SQL Injection alert - 您应该将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入 - 查看Little Bobby Tables
  • 我只喜欢第一个。但是删除所有满足的设置现在也可以。

标签: c# mysql sql-delete


【解决方案1】:

这就是您将如何删除符合您条件的第一条记录。正如其他人所提到的,最好使用我也做过的参数:

command.CommandText = "DELETE FROM `" + Main.Instance.Configuration.Instance.DatabaseTableName + "` WHERE `steamId` = @SteamId AND `stock` = @Stock LIMIT 1;";
command.Parameters.AddWithValue("@SteamId", steamId);
command.Parameters.AddWithValue("@Stock", stock);

【讨论】:

  • 非常感谢你,作品!
猜你喜欢
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-25
相关资源
最近更新 更多