rawQuery,让光标指向列中的STRING行

时间:2012-06-28 09:27:38

标签: android sqlite

我一直在学习Java,使用Eclipse for Android,已经有2个月了,并且刚刚开始学习数据库。 我知道我在这里做错了,答案很简单,但我无法得到它。我知道此类问题之前曾被问过1M次。很抱歉再次询问。

我有一个名为TABLE_NAME的表:

|-----|-------|-------|
|._id.|.ITEM..|.LAST..|
|..1..|...A...|.......|
|..2..|...B...|...L...|<--I want the cursor to point to this row which has "L" in column LAST 
|..3..|...C...|.......|
|-----|-------|-------|

我希望光标指向“LAST”列中带有“L”的行。我使用以下代码:

cursor = db.rawQuery("SELECT * FROM " +TABLE_NAME +" WHERE "+LAST+" LIKE '%"L"%'", null);

但是我的代码的最后一行下面有一个红线。 有人可以帮忙吗?

刚想出如何回答我自己的问题:

感谢大家的帮助。将'%'L“%'”更改为'%L%'后,新代码为:

cursor = db.rawQuery(“SELECT * FROM”+ TABLE_NAME +“WHERE”+ LAST +“LIKE'%L%'”,null);

我写道:cursor.moveToFirst();&lt; ---告诉光标转到查询找到的行 然后:

THESTRING = cursor.getString(cursor.getColumnIndex(LAST));&lt; ---获取行中的信息

再次感谢大家。

5 个答案:

答案 0 :(得分:1)

LIKE '%"L"%'"

应该是

LIKE '%L%'"

答案 1 :(得分:0)

语法上有这个错误:

cursor = db.rawQuery("SELECT * FROM " +TABLE_NAME +" WHERE "+LAST+" LIKE '%"+L+"%'", null);

您缺少两个+用于连接。 或者像这样,如果L是实际值而不是变量

cursor = db.rawQuery("SELECT * FROM " +TABLE_NAME +" WHERE "+LAST+" LIKE '%L%'", null);

答案 2 :(得分:0)

应该是:

cursor = db.rawQuery("SELECT * FROM " +TABLE_NAME +" WHERE "+LAST+" LIKE '%"+L+"%'", null);

使用+左右L变量..

答案 3 :(得分:0)

试试这个:你忘了+

 db.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE " + LAST + " LIKE '%" + L + "%'", null);

答案 4 :(得分:0)

|..2..|...B...|...L...|<--I want the cursor to point to this row which has "L" i

应该是

cursor = db.rawQuery(“SELECT * FROM”+ TABLE_NAME +“WHERE”+ LAST +“LIKE'%L%'”,null);