android - 包含特殊字符的 SQLite 查询

标签 android sqlite

我必须构建 SQLite 数据库,在其中存储一些具有特殊字符的字符串,对于大多数情况,它都可以找到,除了这个

SELECT * FROM table1 WHERE use_id = 3B:02

它抛出这个错误

android.database.sqlite.SQLiteException: near ":02": syntax error (code 1):

当这个 "3B:02"是可变的时,我该如何处理呢

这是我的问题

selectQuery = "SELECT * FROM " + DataBaseHelper.TABLE_COM + " WHERE "
                + DataBaseHelper.COLUMN_USER_ID + " = " + value;

最佳答案

SQL 中的字符串字面值需要放在'单引号'中。

但是,最好使用 ? 占位符作为文字并绑定(bind)值,例如

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

关于android - 包含特殊字符的 SQLite 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959769/

相关文章:

wpf - 使用 SQLite 和 Entity Framework 进行数据绑定(bind)

java - EditText.setError 对于不可聚焦的 View

Android显示html文本的最佳方式

android - 从我的 apk 中删除所有 Timber 日志

java - 使用现有 boolean 列类型的房间迁移

sql - 根据一列的值计算不同的总和

c# - MultiSelectable ListView - ItemSelected 未被调用

java - 在 Android 的 WebView 中获取点击的 url

qt - Qml、SQLite 和 EstimatedSize 参数

android - SQLite 数据库和 CursorLoaders