我有变量:
String owner="Mike";
String[] columns ={"quantity", "price","owner"}
Run Code Online (Sandbox Code Playgroud)
我的光标正试图搞定
Cursor findEntry = db.query("sku_table", columns, "owner="+owner, null, null, null, null);
我收到错误没有这样的列错误
android.database.sqlite.SQLiteException: no such column: owner: , while compiling: SELECT quantity, price, owner, FROM sku_table WHERE owner=Mike
Run Code Online (Sandbox Code Playgroud)
但是如果我接受这个查询:
SELECT quantity, price, owner, FROM sku_table WHERE owner=Mike
Run Code Online (Sandbox Code Playgroud)
并添加""到Mike,并在sqlite浏览器中测试以执行查询,我确实得到了回行.工作查询如下所示:
SELECT quantity, price, owner, FROM sku_table WHERE owner="Mike"
Run Code Online (Sandbox Code Playgroud)
有人可以放弃一些有关如何合并双引号的见解吗?除了使用"谢谢!
War*_*ith 83
抱歉,这正是您应该使用该方法提供的内容的原因!@Leandros和@Jake正在帮助完全错误的方向!对不起,说...
您应该使用的唯一解决方案是:
Cursor findEntry = db.query("sku_table", columns, "owner=?", new String[] { owner }, null, null, null);
Run Code Online (Sandbox Code Playgroud)
ps:是的,我投了两个答案,因为它们可能有效,但提供了一个不应该使用的解决方案.
更新:
如果您需要多个where条件,只需像在普通查询中那样添加它
Cursor findEntry = db.query("sku_table", columns, "owner=? and price=?", new String[] { owner, price }, null, null, null);
Run Code Online (Sandbox Code Playgroud)
元素?和new String[] {...}元素的顺序必须相同!