小编典典

带有LIKE StateMent的SQL中的Android单引号

sql

我在使用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=don't)时会崩溃。

以及如何解决?

感谢您的阅读,并希望听到你们= D的解决方案。呵呵


阅读 185

收藏
2021-04-28

共1个答案

小编典典

要解决此问题,您需要将单引号替换为两个单引号。尝试使用类似…

SomeSongTitle = SomeSongTitle.replace("'", "''");
2021-04-28