Sqlite在Android上使用rawQuery选择查询

我知道这是一个基本问题,但我找不到问题.
我尝试用rawQuery获取一些列.
sqliteDatabase db=database.getReadableDatabase();

    try 
    {
       String sql="SELECT * FROM CAR WHERE name = "; 
       Cursor crs = db.rawQuery(sql+"5P",null);
    }

我总是得到同样的例外.

android.database.sqlite.sqliteException: **unrecognized token**: "5P":,while compiling: SELECT * FROM CAR WHERE name = 5P

我有5P在CAR表,我相信,因为我使用其他查询.

您需要引用该值,或者更好地使用位置参数:
String[] args={"5P"};
Cursor crs=db.rawQuery("SELECT * FROM CAR WHERE name = ?",args);

使用位置参数的优点是sqlite将处理引用字符串,转义任何嵌入的引号等.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能