我尝试执行以下SQL语句(在我的Java应用程序中):
SELECT * FROM Tbl_Job WHERE jobname LIKE '%aa%';
但是我无法使用MS Access(2002)得到相同的(正确的?)结果:
SELECT * FROM Tbl_Job WHERE jobname LIKE '*aa*';
通过这个例子,Access将为我提供400个数据集,而我的Java应用程序只会给我一点点我不知道数据集的确切数量。
我尝试在我的Java应用程序中使用[*] - 通配符,但它根本没有给我任何数据集。 此外,我试图用[“]字符替换[']字符,但这也不起作用。
我不知道这是否相关,但我认为* .mdb文件是使用MS Access(2000)创建的
我的Java代码:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connection = DriverManager.getConnection("jdbc:odbc:_
Driver={Microsoft Access Driver_
(*.mdb)};DBQ=C:\database.mdb");
Statement stm = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stm.executeQuery(sql);
while(rs.next())
do_some_stuff();
答案 0 :(得分:3)
建议您从Java和直接在Access中尝试此SQL语句。
SELECT Count(*) AS num_rows FROM Tbl_Job WHERE jobname ALike '%aa%';
如果num_rows
在两种情况下都相同,请更改第一个查询中的WHERE子句以匹配此子句。
如果num_rows
在两种情况下都不相同,请说明它们有何不同,哪些是正确的。