我在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运算符,但也没有用。
我该如何解决?
答案 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);