我正在将当前在MYSQL下运行的应用程序转换为使用SQL Server。结果是,我有一个奇怪的情况!现有查询在MySQL中通过JDBC工作,并在MySQL内部作为命令行查询工作 - 但是,尽管在SQL Server工作室内从命令行作为查询工作,但同样的查询无法通过SQL Server JDBC驱动程序工作。
在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 ?"
答案 0 :(得分:0)
答案是SQL Server需要'like'分隔%%。如下例所示:
Using "like" wildcard in prepared statement
我们的代码在MySQL驱动程序中运行良好,但驱动程序在这方面明显不同。我已经简化了帖子以防其他人遇到这个问题,并找到了这篇文章。