我正在尝试像这样的Android中执行SQL查询:
SELECT * FROM Flashcards WHERE (category = 'Anatomy' OR category = 'Surgery') AND (difficulty = 'Easy' OR difficulty = 'Medium');
类别和困难的数量是在运行时通过用户选择确定的。到目前为止,我已经尝试将原始查询与查询参数一起使用,但是在这种情况下,我感觉自己正在与框架进行斗争:
String query = "SELECT * FROM Flashcards WHERE (?) AND (?) ORDER BY RANDOM() LIMIT 1";
Cursor cursor = db.rawQuery(query, queryParameters);
我尝试传递的查询参数包括:
category = 'Anatomy' OR category = 'Surgery'
和:
category = Anatomy OR category = Surgery
查询保持不返回任何结果。在外部对同一数据库执行的同一查询不会返回结果。
尝试:
String query = "SELECT * FROM Flashcards WHERE category = ? OR category = ? ORDER BY RANDOM() LIMIT 1";
Cursor cursor = db.rawQuery(query, queryParameters);
仅供参考,参数位置应以?表示 标志。
当您要传递字段名称和值运行时时,可以构建格式化的字符串,例如:
String query = "SELECT * FROM Flashcards WHERE %s AND %s ORDER BY RANDOM() LIMIT 1";
Cursor cursor = db.rawQuery(String.format(query, queryParameters));
您必须queryParameters
像上面category = 'Anatomy' OR category = 'Surgery'
提到的那样建立价值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句