首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有用户输入的SQL查询

问带有用户输入的SQL查询
EN

Stack Overflow用户
提问于 2016-08-13 03:39:23
回答 1查看 112关注 0票数 0

我有个错误

java.sql.SQLException: ORA-00933: SQL命令未正确结束

当我尝试执行以下SQL语句时。

在这个语句中,当搜索客户名称时,它应该显示特定客户的所有租赁详细信息和反馈。“查询”是指用户在数据库中搜索名称(CustomerName)时输入的内容。

代码语言:javascript
复制
 SELECT c.CustomerName, r.Rental_ID, r.Staff_ID, r.RentalDate, r.DueDate,
 r.Customer_ID, f.Description 
 FROM Rental r, Customer c, FeedBack f 
 WHERE f.Customer_ID = r.Customer_ID 
 AND c.Customer_ID = f.Customer_ID 
 ORDER BY DueDate 
 WHERE CustomerName like "+ query +";

哪里出了问题?

EN

回答 1

Stack Overflow用户

发布于 2016-08-13 03:46:24

因为您的WHERE和ORDER BY子句位于错误的位置;不仅是查询中实际上有两个WHERE子句。应该只有一个。首先应该是WHERE,然后是order by。应该是

代码语言:javascript
复制
WHERE CustomerName like "+ query +"
ORDER BY DueDate;

另外,作为一个副词,

  1. 考虑使用参数化查询
  2. 修改您的查询以使用ANSI标准JOIN语法而不是旧的样式语法。

您的查询应该类似于

代码语言:javascript
复制
SELECT c.CustomerName, r.Rental_ID, 
r.Staff_ID, r.RentalDate, 
r.DueDate, r.Customer_ID, f.Description
FROM Rental r  
JOIN FeedBack f ON f.Customer_ID = r.Customer_ID
JOIN Customer c ON c.Customer_ID = f.Customer_ID
WHERE c.CustomerName like "+ query +"
ORDER BY r.DueDate;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38928952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档