我在使用sql LIKE语句时查询单引号时遇到问题
这是我用于在SD卡中搜索MUSIC文件的SQL查询。
final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; final String[] cursor_cols = { MediaStore.Audio.Media.TITLE }; where = MediaStore.Audio.Media.TITLE + " like ('%"+SomeSongTitle+"%')"; cursor = getContentResolver().query(uri, cursor_cols, where, null, null);
SomeSongTitle 是用户输入的一些任意输入文本。
SomeSongTitle
我的问题是为什么当SomeSongTitle包含一个单引号(例如SomeSongTitle=don't)时会崩溃。
SomeSongTitle=don't
以及如何解决?
感谢您的阅读,并希望听到你们= D的解决方案。呵呵
要解决此问题,您需要将单引号替换为两个单引号。尝试使用类似…
SomeSongTitle = SomeSongTitle.replace("'", "''");