我尝试在 Android 中执行以下 SQL 查询:
String names = "'name1', 'name2"; // in the code this is dynamically generated
String query = "SELECT * FROM table WHERE name IN (?)";
Cursor cursor = mDb.rawQuery(query, new String[]{names});
但是,Android 不会用正确的值替换问号。我可以这样做,但是,这并不能防止 SQL 注入:
String query = "SELECT * FROM table WHERE name IN (" + names + ")";
Cursor cursor = mDb.rawQuery(query, null);
我怎样才能避免这个问题并且能够使用 IN 子句?