次のような呼び出しから生成される生のクエリ文字列を取得する方法はありますか? 私はどのように「?」を理解しようとしています。プレースホルダーが入力されます。
Cursor cursor = database.query(
adapter.getTable(), // The table to query - String
adapter.getColumns(), // The columns to return - String[]
adapter.getWhereClause(), // The columns for the WHERE clause - String
adapter.getWhereClauseArgs(), // The values for the WHERE clause - String[]
null, // Group by - String
null, // Groups having - String
adapter.getSortBy(), // The sort order - String
adapter.getLimit()); // The limit - String
操作の順序が気になります。たとえば、上記のクエリが、以下の whereClause 引数を使用して以下の select に変換された場合、result1 または result2 を取得できますか? かっこ内のステートメントが最初に実行される数学の演算の順序のように機能しますか? または、文字列内の「?」の位置に厳密に依存しています。
String select = "SELECT * FROM table1 WHERE someField = ? AND _id in(SELECT _id FROM table2 WHERE status = ?)";
String[] args = new String[]{ "blue", "active" };
String result1 = "SELECT * FROM table1 WHERE someField = 'blue' AND _id in(SELECT _id FROM table2 WHERE status = 'active')";
String result2 = "SELECT * FROM table1 WHERE someField = 'active' AND _id in(SELECT _id FROM table2 WHERE status = 'blue')";