SQLite中字符串的比较

时间:2013-12-07 17:31:08

标签: java sqlite

我在SQL Lite中比较两个字符串时遇到问题。 此查询有效

Cursor cur=myDataBase.rawQuery("SELECT * from usluga where usluga_nazwa = 'malowanie farba dekoral'" ,null);

但是这个

String tmp="malowanie farba dekoral";
Cursor cur=myDataBase.rawQuery("SELECT * from usluga where usluga_nazwa = "+tmp+"" ,null);

无效

  

错误:SQLite异常:接近“farba”语法错误。

我尝试使用LIKE运算符,但也没有用。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

第一个就像

usluga_nazwa ='some string'

第二个成为

usluga_nazwa =一些字符串

,它给出了语法错误

只需在字符串周围添加括号即可 第二个SQL查询中的值(tmp)。

String tmp="malowanie farba dekoral";
Cursor cur=myDataBase.rawQuery("SELECT * from usluga where usluga_nazwa = '"+tmp+"'" ,null);

另请注意,如果您的字符串值(tmp)本身包含
'那么你可能会遇到一个问题。而且 解决方法就是在字符串值中转义'

答案 1 :(得分:0)

SQL中的字符串文字由单引号分隔,您在第二个示例中忘记添加。只需添加它们,你就可以了:

String tmp="malowanie farba dekoral";
Cursor cur=myDataBase.rawQuery("SELECT * from usluga where usluga_nazwa = '"+tmp+"'" ,null);