我相信你让这变得比它需要的更难,同时你错过了一些东西。这是你想要做的吗?
SELECT country FROM data WHERE city LIKE 'jakarta%'
也就是说,您是否从城市名称以“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(); /* please don't forget to close your result sets */