c# - 你能找到我的 SQL 语法中的错误吗?

标签 c# mysql sql visual-studio

我尝试构建获取 SQL 数据的 Visual Studio 项目。

错误是:1064 检索数据库信息时出错。 SQL 语法错误。

我不知道错误在哪里。

 sQuery = string.Format("select distinct stringid from {0} where TIMESTAMPDIFF( day, insertts, now() ) < 30 " +
          "and status = '{2}' and stringid not in (select distinct stringid from {1} where TIMESTAMPDIFF( day, insertts, now() ) < 30)",

任何事情都会有帮助。

谢谢

最佳答案

该字符串格式化操作对我来说看起来不错(尽管信息有限),但有几种可能性。

  1. 检查结果字符串的格式是否有效。我的意思是在执行之前打印出 sQuery 。由于 MySQL 错误 1064 是一个相当普遍的“错误语法”错误,因此可能是给 String.Format 的参数形成了错误的查询(例如 {2}包含 ' 字符)。

  2. 确保目标 DBMS 正在运行 MySQL 5 或更高版本。 TIMESTAMPDIFF 在此之前不可用。

  3. 尝试在实际目标 DBMS 中而不是通过代码运行完全相同的查询(使用上面 (1) 中打印的内容)。错误 1064 通常会为您提供一个接近“blah blah blah”的错误消息附录,这有助于准确找出语句中问题所在的位置

    <

关于c# - 你能找到我的 SQL 语法中的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750291/

相关文章:

SQL 选择数据库中的表列表

sql - 如何使用 SQL 检查数组是否已排序?

mysql - mySQL 中完全外连接的计数

c# - 以与 SO 在版本页面上相同的方式区分两个字符串的算法是什么?

c# - 尝试添加叠加层以映射错误

c# - as 关键字可以代替 try/catch block 吗?

PHP 搜索 SQL 数据库

c# - DB-First 身份验证与 ASP.NET Web API 2 + EF6 混淆

php - 如何在字符串中搜索两个或多个单词?

mysql - fmdb ios 创建和插入查询