【问题标题】:Whats wrong with the sql statement?sql语句有什么问题?
【发布时间】:2016-03-25 06:57:59
【问题描述】:

startD 是日期,endD 是日期,类型是字符串

 String sqlStatement = "SELECT Booking.* FROM Booking INNER JOIN Room USING (RoomID) BETWEEN " + startD + ", " + endD+ " AND RoomSize = " + type;

这是我的错误:

 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 'BETWEEN 2016-03-01, 2016-03-01 AND RoomSize = Medium' at line 1

【问题讨论】:

  • 我有点困惑,你想做什么?检查 RoomID 是否在两个日期之间?我想你的意思可能类似于WHERE booking.date BETWEEN...
  • 我的意思是用户选择了2个日期;开始D 和结束D。 sql 语句返回一个结果集,其中结果介于用户输入的日期之间,而 RoomSize 等于用户指定的大小。
  • 是的,但是预订日期存储在哪里?您永远不会说数据库中的哪个字段应该在两个日期之间。
  • 感谢您的意见。我的表不包含该列。我的表基于一个预订系统,其中我有一个 startDate 和 endDate 列。这些列代表房间预订的持续时间。另外,我没有日期列,因为包含它没有意义,对吧?

标签: java mysql sql


【解决方案1】:

见手册Between Clause

替换,在从句之间用AND

【讨论】:

    【解决方案2】:

    SQL 语句不正确,应该是: String sqlStatement = "SELECT Booking.* FROM Booking INNER JOIN Room USING (RoomID) WHERE someDateColumn BETWEEN " + startD + " AND " + endD+ " AND RoomSize = " + type ;

    【讨论】:

    • 我的表中有一个 startdate 和 enddate 列。不是像 someDateColumn 这样的列,因为我不知道要在其中包含什么。
    • 然后 someDateColumn 你应该放其中之一,例如String sqlStatement = "SELECT Booking.* FROM Booking INNER JOIN Room USING (RoomID) WHERE startDate BETWEEN " + startD + " AND " + endD+ " AND RoomSize = " + type;
    • 感谢您的帮助。但我仍然收到一个错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:'where 子句中的未知列'Medium'
    • 表格中是否有中等列?您应该使用 Booking 或 Room 表中的那些列
    • 如果您在说什么,我的预订和房间表中有 RoomID?
    【解决方案3】:

    语法错误:

    试试下面的一个:

    String sqlStatement = "SELECT Booking.* FROM Booking INNER JOIN Room USING (RoomID) WHERE BETWEEN " + startD + " AND " + endD+ " AND RoomSize = " + type;
    

    您缺少 WHERE 子句,此外,您还缺少一个 AND(您已使用逗号代替),当您使用 BETWEEN 关键字提供范围时,这是必需的。

    【讨论】:

    • 你能把你的表的模式和错误信息一起发布吗?
    猜你喜欢
    • 2013-11-06
    • 1970-01-01
    • 2020-06-27
    • 2011-08-28
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多