Android SQL 查询语法
Android SQL Query syntax
我用这个javaclass创建了一个数据库:
public class DBhelper extends SQLiteOpenHelper {
private static final String DB_NAME = "grades.db";
private static final int DB_VERSION = 1;
public static final String TABELLA_RICETTE = "TabellaRicette";
public static final String COL_ID="ColonnaId";
public static final String COL_NOME="ColonnaNome";
public static final String COL_TIPO = "ColonnaTipo";
public static final String COL_IMMAGINE = "ColonnaImmagine";
public static final String COL_ATTRIBUTI="ColonnaAttributi";
public static final String COL_INGREDIENTI = "ColonnaIngredienti";
public static final String COL_DIFFICOLTA="ColonnaDifficolta";
public static final String COL_DESCRIZIONE="ColonnaDescrizione";
public DBhelper(Context context){
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql_tab = "create table " + TABELLA_RICETTE + "( " +
COL_ID + " integer primary key autoincrement, " +
COL_NOME + " text not null, " +
COL_TIPO + " text not null, " +
COL_IMMAGINE + " text not null, " +
COL_ATTRIBUTI + " text not null, " +
COL_INGREDIENTI + " text not null, " +
COL_DIFFICOLTA + " text not null, " +
COL_DESCRIZIONE + " text not null " +
");";
db.execSQL(sql_tab);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
我用这个函数获取数据库中的所有信息:
public Cursor get_all() {
return getWritableDatabase().query(TABELLA_RICETTE, null, null, null, null, null, null);
}
现在我将进行更具体的查询,选择在 COL_TIPO
中具有特定 String s1
且在 COL_DIFFICOLTA
中具有特定 String s2
的所有元素。
我试着写点东西,但也许我的语法也有问题。
你能帮我实现这个功能吗?
public Cursor get_something(String s1,String s2) {
String whereClause="COL_TIPO=? AND COL_DIFFICOLTA=?";
String[] whereArgs=new String[] {s1,s2};
return getWritableDatabase().query(TABELLA_RICETTE,null,null,whereClause,whereArgs,null,null,null);
}
COL_TIPO
不是列名而是包含列名的符号名
您必须将符号的值放入 SQL 字符串中:
String whereClause = COL_TIPO+"=? AND "+COL_DIFFICOLTA+"=?";
我用这个javaclass创建了一个数据库:
public class DBhelper extends SQLiteOpenHelper {
private static final String DB_NAME = "grades.db";
private static final int DB_VERSION = 1;
public static final String TABELLA_RICETTE = "TabellaRicette";
public static final String COL_ID="ColonnaId";
public static final String COL_NOME="ColonnaNome";
public static final String COL_TIPO = "ColonnaTipo";
public static final String COL_IMMAGINE = "ColonnaImmagine";
public static final String COL_ATTRIBUTI="ColonnaAttributi";
public static final String COL_INGREDIENTI = "ColonnaIngredienti";
public static final String COL_DIFFICOLTA="ColonnaDifficolta";
public static final String COL_DESCRIZIONE="ColonnaDescrizione";
public DBhelper(Context context){
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql_tab = "create table " + TABELLA_RICETTE + "( " +
COL_ID + " integer primary key autoincrement, " +
COL_NOME + " text not null, " +
COL_TIPO + " text not null, " +
COL_IMMAGINE + " text not null, " +
COL_ATTRIBUTI + " text not null, " +
COL_INGREDIENTI + " text not null, " +
COL_DIFFICOLTA + " text not null, " +
COL_DESCRIZIONE + " text not null " +
");";
db.execSQL(sql_tab);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
我用这个函数获取数据库中的所有信息:
public Cursor get_all() {
return getWritableDatabase().query(TABELLA_RICETTE, null, null, null, null, null, null);
}
现在我将进行更具体的查询,选择在 COL_TIPO
中具有特定 String s1
且在 COL_DIFFICOLTA
中具有特定 String s2
的所有元素。
我试着写点东西,但也许我的语法也有问题。
你能帮我实现这个功能吗?
public Cursor get_something(String s1,String s2) {
String whereClause="COL_TIPO=? AND COL_DIFFICOLTA=?";
String[] whereArgs=new String[] {s1,s2};
return getWritableDatabase().query(TABELLA_RICETTE,null,null,whereClause,whereArgs,null,null,null);
}
COL_TIPO
不是列名而是包含列名的符号名
您必须将符号的值放入 SQL 字符串中:
String whereClause = COL_TIPO+"=? AND "+COL_DIFFICOLTA+"=?";