在查询SQLite Android上使用替换字符操作函数时出错
当我使用此键时,它会给我一个错误,但当我使用长度时,它工作正常。我希望android sqlite上允许这样做,因为这是最好的方式: 我只是试图删除将从数据库中选择的单词后面的空格在查询SQLite Android上使用替换字符操作函数时出错,android,sqlite,Android,Sqlite,当我使用此键时,它会给我一个错误,但当我使用长度时,它工作正常。我希望android sqlite上允许这样做,因为这是最好的方式: 我只是试图删除将从数据库中选择的单词后面的空格 public ArrayList<String> getCorrectList() { // TODO Auto-generated method stub Cursor c = db.rawQuery("SELECT REPLACE(Level_1, ' ', '')
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;
}
public ArrayList getCorrectList(){
//TODO自动生成的方法存根
游标c=db.rawQuery(“从“+表,null”中选择替换(级别1,,”);
ArrayList resultsList=新建ArrayList();
试一试{
如果(c!=null){
if(c.moveToFirst()){
做{
String levelData=c.getString(c
.getColumnIndex(“级别1”);
结果列表。添加(“+c.getColumnIndex(“级别1”));
}而(c.moveToNext());
}
}
}catch(sqlitee异常){
Log.e(“数据库”,“无法获取列表”(+e+));
}
Log.d(“数组”,“列表:”+resultsList);
集合.shuffle(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);
错误是什么?