我相信你正在把这件事情搞得比必要的还要复杂,同时你也错过了一些东西。你是想做这个吗?
SELECT country FROM data WHERE city LIKE 'jakarta%'
那么,您是否正在寻找每行中城市名称以“雅加达”开头的国家列?如果是这样,请不要忘记添加“%”符号。如果您不包含“%”符号,那么……
SELECT country FROM data WHERE city LIKE 'jakarta'
并且
SELECT country FROM data WHERE city = 'jakarta'
这两个词的意思完全相同,使用LIKE
运算符是没有意义的;您可以使用=
运算符。
因此,我认为您想要的MySQL查询是
SELECT country FROM data WHERE city LIKE CONCAT(LEFT('jakartada',7),'%')
添加百分号即可。在这种情况下,您不需要子查询。
正如您指出的那样,您需要的Java代码是:
String sql = "SELECT country FROM data " .
"WHERE city LIKE CONCAT(LEFT(?,7),'%')";
PreparedStatement ps = koneksi.prepareStatement(sql);
ps.setString(1, city );
ResultSet rs = ps.executeQuery();
... process the rs records ...
rs.close();