[英]Android / SQLite - backticks, single quotes or double quotes?
假设我有这样的方法...
long getNumItemsFromDb() {
SQLiteDatabase db = dbhelper.getReadableDatabase();
try {
String query = "SELECT " + COL_NAME +
" FROM " + TABLE_NAME +
" WHERE " + COL_NAME + " = ?";
String[] args = new String[] {"whatever"};
return DatabaseUtils.longForQuery(db, query, args);
} finally {
db.close();
}
}
...但是,例如String COL_NAME = "select";
可能String COL_NAME = "select";
和String TABLE_NAME = "from";
-这将中断查询。 因此,我显然需要在query
字符串中用反引号,单引号或双引号将这些值引起来-但是其中哪种是Android / SQLite的最佳实践?
注意:我在上面简化了我的查询字符串,以使这个问题更简单,更切合实际。 因此,实际上,我确实需要像这样手动创建SQL,而不是使用Android中的一种辅助方法。
我会说符合标准。
ANSI标准是用双引号引起来的字段/标识符,并且在SQLite上运行良好 。
请注意,某些其他RDBMS 可能需要一些帮助才能遵循该标准 ,但是遵循该标准将使您的SQL尽可能在尽可能多的RDBMS /平台上运行。
如果要使用SQLitedatabase
类SQLitedatabase
,则可以只使用query
方法,而不必担心您的选择字符串是否包含任何标识符。
尽管在使用带有MATCH标识符的FTS表时,我注意到您必须在可搜索字符串周围加上如下百分号: "%"+str+"%"
,否则它只能匹配到一个空格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.