在查询SQLite时使用REPLACE字符操作函数出错



当我使用这个键时,它给了我一个错误,但是当我使用LENGTH时,它工作得很好。我希望android sqlite允许这样做,因为这是最好的方式:

我只是想删除将从数据库中选择的单词后的空格。

public ArrayList<String> getCorrectList() {
        // TODO Auto-generated method stub
        Cursor c = db.rawQuery("SELECT REPLACE(Level_1, ' ', '') FROM " + TABLE, null);
        ArrayList<String> resultsList = new ArrayList<String>();
        try {
            if (c != null) {
                if (c.moveToFirst()) {
                    do {
                        String levelData = c.getString(c
                                .getColumnIndex("Level_1"));
            resultsList.add("" + c.getColumnIndex("Level_1"));
                    } while (c.moveToNext());
                }
            }
        } catch (SQLiteException e) {
            Log.e("Database", "Cannot get List (" + e + ")");
        }
        Log.d("array", "List: " + resultsList);
        Collections.shuffle(resultsList);
        return resultsList;
    }

这在SQLite3 shell中运行良好:

e$ sqlite3
SQLite version 3.7.14.1 2012-10-04 19:37:12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table t(a,b,c);
sqlite> select replace(a,' ', '') from t;

REPLACE在SQLite3中既是函数又是命令。也许db.rawQuery正在解析查询并被REPLACE混淆。试试这个:

db.rawQuery("select rtrim(replace(Level_1, ' ', '')) FROM " + TABLE, null);

最新更新