我試圖運行preparedStatement ps以檢查數據庫中是否存在數據。然后它將運行更新(如果存在)或插入(如果不存在)。但是,我收到語法錯誤java.sql.SQLSyntaxErrorException:你的 SQL 語法有錯誤;查看與您的 MySQL 服務器版本對應的手冊,了解在第 1 行的“order WHERE date = '2019-05-22'”附近使用的正確語法我無法發現錯誤在哪里。任何人都可以幫忙嗎?PreparedStatement ps,ps1; ps =con.prepareStatement("Select 1 from order WHERE date = ?"); ps.setString(1, date); ResultSet rsOrder=ps.executeQuery(); if(rsOrder.next()) { System.out.println("reOrder: true"); ps1 = con.prepareStatement("UPDATE order SET result = ? WHERE date = ?"); ps1.setString(1, json); ps1.setString(2, date); int rs=ps1.executeUpdate(); }else { System.out.println("reOrder: false"); ps1 = con.prepareStatement("INSERT INTO order (date,result) VALUES (?,?)"); ps1.setString(1, date); ps1.setString(2, json); int rs=ps1.executeUpdate(); }
1 回答

繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
order是MySQL中的保留字。所以它不會允許,沒有轉義保留字。
您可以通過在關鍵字周圍添加 ` 來轉義它:
Select 1 from `order` WHERE date = ?
UPDATE `order` SET result = ? WHERE date = ?
INSERT INTO `order` (date, result) VALUES (?, ?)
添加回答
舉報
0/150
提交
取消