我尝试构建获取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)",
一切都会有所帮助。
由于
答案 0 :(得分:3)
字符串格式化操作对我来说很好(尽管信息有限),但有几种可能性。
检查生成的字符串是否为有效格式。这样,我的意思是在执行之前打印出sQuery
。由于MySQL错误1064是一个相当普遍的“错误语法”错误,因此给String.Format
的参数可能会形成错误的查询(例如{2}
包含'
个字符。
确保目标DBMS运行MySQL 5或更高版本。在此之前无法使用TIMESTAMPDIFF
。
尝试在实际目标DBMS中运行完全相同的查询(使用您在上面(1)中打印的内容)而不是通过代码。错误1064通常会为您提供错误消息的near 'blah blah blah'
附录,这有助于在问题所在的语句中确切地确定 where 。