【发布时间】:2015-07-25 23:29:48
【问题描述】:
我正在将当前在 MYSQL 下运行的应用程序转换为使用 SQL Server。结果是,我遇到了一个奇怪的情况!现有查询通过 JDBC 在 MySQL 中工作,并在 MySQL 中作为命令行查询工作——然而,相同的查询不能通过 SQL Server JDBC 驱动程序工作,尽管在 SQL Server 工作室中从命令行作为查询工作。
在 MYSQL JDBC 下我得到一组结果,在 SQL Server JDBC 下我得到 0 个结果。
我已经尝试过这种查询方式(在 SQL Server 中可以从命令行运行)
SELECT DISTINCT
x,
y
FROM
table1,
table2
WHERE
x = y
AND start_date <= '2015-05-15'
AND end_date >= '2015-05-15'
AND direction LIKE 'Direction';
JDBC 内部是这样的:
"select DISTINCT x, y from table1, table2" +
"WHERE x=y and start_date <= ? and end_date >= ? and direction like ?"
【问题讨论】:
-
可能没有关于加入条件的匹配数据?
-
我检查了MYSQL和SQL Server中的数据,两者在结构和内容上都是相同的。 MYSQL版本返回2行,SQL Server返回0行。
-
您与同一个用户连接到同一个数据库?是否记录了任何错误?
-
@DaveHowes 就是这样,戴夫。没有记录错误:它是一个本地测试数据库。我所拥有的只是不正确的结果。我一直在检查数据库是否通过日志连接。我注意到最后一个 OR 可以从命令行中删除,并且 SQL 客户端返回正确的结果集。但是,明智的 JDBC,我仍然没有得到任何回报,只是一个空集。这是一个更大的应用程序的一部分,我主要可以通过连接到 SQL Server 来完成它:因此,它不太可能是用户/混合连接问题。
-
你能贴出 select 语句周围的代码,以便我们在上下文中看到它吗?
标签: java mysql sql-server jdbc