私はあなたがこれ以上必要以上に難しくしていると同時に、何かが欠けていると思います。これはあなたがやろうとしていることですか?
つまり、都市名が「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 */
OPは 'LIKE'を使用していますだから私はリルビットSQLExceptionを投げることを懸念して.. – Smit
その後、SQLExceptionをキャッチですか? – hd1
@Kevin Bowersox:ステートメントにパラメータを追加する方法は、そのクエリの例を挙げることができますか? – reza