Java : error in SQL syntax

标签 java mysql syntax-error

我正在尝试使用以下查询从数据库中检索信息:

 String Retrieve 
                    = "SELECT o.order_id , o.betalingsKenmerk , o.betaalMethode , o.tijdstipBezorging , o.datum"
                    + ", o.adres , o.huisnummer , o.postcode , o.woonplaats , o.landCode , o.extrainfo , o.opmerking"
                    + ", o.altEmail , o.voornaam , o.achternaam , o.bedrijfsnaam , o.telnummer , o.betaald , o.bezorgkosten"
                    + ", o.totaalExBzg , o.siteCode , o.opmerking"
                    + ", IF(o.transactieID = -1, 1,0) "
                    + "AS pickup, r.rest_id, TRIM(CONCAT(r.naam, ' ', r.filiaal)) AS restname"
                    + "FROM thuis.order o IGNORE INDEX(connectieid, doorberekenen)"
                    + "INNER JOIN connectie c IGNORE INDEX(methode)"
                    + "ON o.connectieId = c.id"
                    + "AND c.methode = 26 "
                    + "INNER JOIN restaurant r"
                    + "ON o.restaurantRest_id = r.rest_id"
                    + "WHERE o.datum >= TIMESTAMP(CURDATE())"
                    + "AND o.order_statusOrder_status_id = '1'"
                    + "AND o.order_statusOrder_device_id = ?"
                    + "AND o.doorberekenen = '1'"
                    + "AND ((o.bevestigingsId IS NULL OR o.bevestigingsId = 0) AND o.bevestigdDoor IS NULL)";

但是我收到错误:

[17-03-2015 10:20:57] [FATAL] [OrderCollector]
Error : com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'thuis.order o IGNORE INDEX(connectieid, doorberekenen)INNER JOIN connectie c IGN' at line 1

我已经在netbeans中的Sql管理器中尝试过对数据库进行这个查询,它工作得很好,但是当我尝试为java重新输入它时,它只是不断地给出上面的错误。

我找不到解决方案!

最佳答案

您缺少一个空格

改变

"FROM thuis.order o IGNORE INDEX(connectieid, doorberekenen)"

" FROM thuis.order o IGNORE INDEX(connectieid, doorberekenen)"

没有它,restnameFROM 就会变成一个单词,并且找不到 FROM 子句。

同样,您应该在大多数行的开头或结尾添加一个空格。

这应该有效:

String Retrieve 
                    = "SELECT o.order_id , o.betalingsKenmerk , o.betaalMethode , o.tijdstipBezorging , o.datum"
                    + ", o.adres , o.huisnummer , o.postcode , o.woonplaats , o.landCode , o.extrainfo , o.opmerking"
                    + ", o.altEmail , o.voornaam , o.achternaam , o.bedrijfsnaam , o.telnummer , o.betaald , o.bezorgkosten"
                    + ", o.totaalExBzg , o.siteCode , o.opmerking"
                    + ", IF(o.transactieID = -1, 1,0) "
                    + "AS pickup, r.rest_id, TRIM(CONCAT(r.naam, ' ', r.filiaal)) AS restname"
                    + " FROM thuis.order o IGNORE INDEX(connectieid, doorberekenen)"
                    + " INNER JOIN connectie c IGNORE INDEX(methode)"
                    + " ON o.connectieId = c.id"
                    + " AND c.methode = 26 "
                    + " INNER JOIN restaurant r"
                    + " ON o.restaurantRest_id = r.rest_id"
                    + " WHERE o.datum >= TIMESTAMP(CURDATE())"
                    + " AND o.order_statusOrder_status_id = '1'"
                    + " AND o.order_statusOrder_device_id = ?"
                    + " AND o.doorberekenen = '1'"
                    + " AND ((o.bevestigingsId IS NULL OR o.bevestigingsId = 0) AND o.bevestigdDoor IS NULL)";

关于Java : error in SQL syntax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29095468/

相关文章:

PHP MySql -- 返回列名未知的所有记录

PHP - PostgreSQL 更新表时出错

java - 检查Java程序中 'stderr'是否为空

java - 当OutputStream存储为成员时,使用XmlStreamWriter写入它时似乎不起作用,是否不能将其作为成员传递?

mysql - 按 ID 合并 MySQL 列,然后将其放入另一个表

java - For循环变量问题

android-recyclerview - 在回收者 View 上配置搜索 View

java - 谜语的乐趣

java - 哪个 Java 库可用于通过 WebDAV 访问数据?

mysql - Sequelize findOrCreate 不排除排除数组中定义的属性