Android SELECT语句和WHERE子句的正确语法是什么?
我正在尝试探索android,我刚刚开始使用SQLite数据库。我想知道从表中选择一行的正确语法是什么,其中我要选择的行来自用户使用Android SELECT语句和WHERE子句的正确语法是什么?,android,sqlite,select,Android,Sqlite,Select,我正在尝试探索android,我刚刚开始使用SQLite数据库。我想知道从表中选择一行的正确语法是什么,其中我要选择的行来自用户使用editText输入的值。提前感谢。SQLiteDatabase db db.rawQuery(“从您的表中选择*,其中您的列名称='users\u entered\u value'limit 1',null) c包含您触发的查询的结果数组。 可以使用循环检索值 我不同意以上两个答案。如果用户输入此查询怎么办: Bobby Tables'; drop table y
editText
输入的值。提前感谢。SQLiteDatabase db
db.rawQuery(“从您的表中选择*,其中您的列名称='users\u entered\u value'limit 1',null)
c包含您触发的查询的结果数组。
可以使用循环检索值 我不同意以上两个答案。如果用户输入此查询怎么办:
Bobby Tables'; drop table yourTable;
见:
我认为你应该这样做:
String query = "select * from TABLE_NAME WHERE column_name=?";
String[] selection = new String[1];
selection[0] = users_entered_value;
Cursor c = db.rawQuery(query, selection);
埃塔:事实上,我想得越多,就越觉得你走错了方向。如果你的应用程序依赖于一个数据库查询,该查询只返回用户输入的任意字符串的一个唯一匹配项,那么它可能会在很多时候被破坏
您可能应该做的事情如下:
String query = "select * from TABLE_NAME WHERE column_name LIKE ?";
String[] selection = new String[1];
selection[0] = "%" + users_entered_value + "%";
Cursor c = db.rawQuery(query, selection);
然后迭代结果,根据您自己的标准选择“最佳”匹配
此外,您应该为要搜索的列创建不区分大小写匹配的表。我们的朋友google帮我找到了这样一个问题:也可以尝试一下,我在哪里可以声明此查询?抱歉,我不懂,但声明查询是什么意思?字符串查询=“从您的表格中选择*,其中您的列名称='users\u entered\u value'limit 1';
String query = "select * from TABLE_NAME WHERE column_name LIKE ?";
String[] selection = new String[1];
selection[0] = "%" + users_entered_value + "%";
Cursor c = db.rawQuery(query, selection);