包含特殊字符的SQLite查询

use*_*805 3 sqlite android

我必须构建SQLite数据库,在那里我存储一些具有一些特殊字符的字符串,对于大多数情况,它工作查找除了这一个

SELECT * FROM table1 WHERE use_id = 3B:02
Run Code Online (Sandbox Code Playgroud)

它抛出了这个错误

android.database.sqlite.SQLiteException: near ":02": syntax error (code 1):
Run Code Online (Sandbox Code Playgroud)

当"3B:02"变化时,我该如何处理呢?

这是我的查询

selectQuery = "SELECT * FROM " + DataBaseHelper.TABLE_COM + " WHERE "
                + DataBaseHelper.COLUMN_USER_ID + " = " + value;
Run Code Online (Sandbox Code Playgroud)

laa*_*lto 7

SQL中的字符串文字值必须在'single quotes'.

但是,最好使用?文本占位符并绑定值,例如

Cursor c = db.rawQuery("SELECT * FROM " + DataBaseHelper.TABLE_COM + " WHERE "
            + DataBaseHelper.COLUMN_USER_ID + " = ?", new String[] { value });
Run Code Online (Sandbox Code Playgroud)