首页 > 解决方案 > android 上的 sqlite 中的单引号问题。需要在不替换引号的情况下解决

问题描述

Cursor cursor = database.rawQuery

            ("SELECT * FROM table where word like '?%'".replace("?", 
              letter),null);

letter当字符串应用程序崩溃中存在单引号时。需要解决,letter.replace(" ' ", " ")因为表中有带引号的单词。

标签: javaandroidandroid-studio

解决方案


您错误地使用了语句 API。您应该绑定要在实际查询中出现的文字字符串值。也就是说,这样做:

String param = letter + "%";
String query = "SELECT * FROM table WHERE word LIKE ?";
Cursor cursor = database.rawQuery(query, new String[] { param });

API 有责任正确转义LIKE您尝试构建的表达式。


推荐阅读