我尝试构建获取 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)",
任何事情都会有帮助。
谢谢
最佳答案
该字符串格式化操作对我来说看起来不错(尽管信息有限),但有几种可能性。
检查结果字符串的格式是否有效。我的意思是在执行之前打印出 sQuery 。由于 MySQL 错误 1064 是一个相当普遍的“错误语法”错误,因此可能是给
String.Format
的参数形成了错误的查询(例如{2}
包含'
字符)。确保目标 DBMS 正在运行 MySQL 5 或更高版本。
TIMESTAMPDIFF
在此之前不可用。尝试在实际目标 DBMS 中而不是通过代码运行完全相同的查询(使用上面 (1) 中打印的内容)。错误 1064 通常会为您提供一个
<接近“blah blah blah”
的错误消息附录,这有助于准确找出语句中问题所在的位置。
关于c# - 你能找到我的 SQL 语法中的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750291/