到目前为止,我已经多次尝试在查询中绑定 SQLite 选择参数,就像最佳实践所建议的那样。但它很少奏效。我很好奇确切的原因。现在我意识到这可能是由 FROM 子句中的子查询引起的。例如...
SELECT X(result) as x, Y(result) as y, Z(result) as z FROM (select Transform(MakePointZ(?, ?, 0.0, ?), ?) as result);
Java代码类似于...
double x, y, z;
int source, target;
final String[] selectionArgs = new String[] {
String.valueOf(x),
String.valueOf(y),
String.valueOf(z),
String.valueOf(source),
String.valueOf(target) };
Cursor c = db.rawQuery(sql, selectionArgs);
有人可以确认在 WHERE 子句之外使用参数是否是错误的,或者向我解释这些参数可以放在哪里?
Ps 我实际上使用的是 Spatialite,它是 SQLite 的扩展,但它基于一个纯粹的、未受影响的 SQLite。