【问题标题】:Delete query error for multiple records删除多条记录的查询错误
【发布时间】:2014-03-27 14:12:29
【问题描述】:

我在这个查询中有问题:

string sqlString = "DELETE FROM [upload_news] WHERE (SELECT TOP " + no_of_recordss + " * FROM [upload_news] WHERE [country]='" + countryy.Text + "')";

错误信息:

错误:{“在上下文中指定的非布尔类型的表达式 预期条件的位置,靠近 ')'。"}

我该如何解决这个问题?

【问题讨论】:

  • 你确定这是 MySQL 吗?
  • 发布你的表格结构
  • 您需要在 where 子句中使用表达式。此外,AFAIK MySQL 不支持 select top ,您必须使用限制,但限制在子查询中不起作用。

标签: mysql


【解决方案1】:

在 where 子句中,您需要一个布尔表达式。 而且mysql不支持select top,必须用limit代替,delete时直接使用

所以你的查询应该是:

delete from upload_news 
    where country=<SOME_COUNTRY> limit <NO_OF_RECORDS>

您必须将“”中的值替换为您想要的值。

或者在你的“奇怪”语法中:

string sqlString = "DELETE FROM [upload_news] WHERE [country]='" + countryy.Text + "' limit "+no_of_recordss;

【讨论】:

  • 如果您可以添加有关表结构的详细信息,我可以完善答案。
猜你喜欢
  • 1970-01-01
  • 2020-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
相关资源
最近更新 更多