簡體   English   中英

Android中正確的SQLite查詢語法

[英]Right SQLite query syntax in android

我必須根據傳遞的參數獲取數據庫的行

例如,選擇按名稱排序的所有年齡38歲且是女性的人,傳遞的參數是

String age=38;
String gender=female;
String job=artist;

我試圖寫這個,但是我的rawQuery肯定有語法錯誤

public Cursor getData(String age, String gender, String job) {
        try {
            Cursor c = mDb.rawQuery("SELECT * FROM mytable order by Name asc WHERE Age='"+age+"'"  WHERE Gender='"+gender+"'" WHERE Job='"+job+"'", null);
            if (c != null) {
                c.moveToNext();
            }
            return c;
        } catch (SQLException mSQLException) {
            Log.e(TAG, "getData>>" + mSQLException.toString());
            throw mSQLException;
        }

    }

有人可以幫助我修復它嗎?

如果Age是String類型,請嘗試:

Cursor c = mDb.rawQuery("SELECT * FROM mytable WHERE Age LIKE \""+age+"\" AND Gender LIKE \""+gender+"\" AND Job LIKE \""+job+"\" order by Name asc", null);

如果Age是Integer類型,請嘗試:

Cursor c = mDb.rawQuery("SELECT * FROM mytable WHERE Age = \""+age+"\" AND Gender LIKE \""+gender+"\" AND Job LIKE \""+job+"\" order by Name asc", null);

問候。

您的SQL語法中存在多個錯誤。 ORDER BY子句應在末尾。 應該使用AND關鍵字來連接多個條件,而不是多個WHERE。 最后,您的報價不正確。

下面是正確的SQL查詢:

從mytable那里選擇*年齡'“ + age +”'和性別''+ gender +“'和職位''+ job +”'按名稱ASC排序;

rawQuery(“ SELECT * FROM mytable WHERE(Age =?and Gender =?and Job =?)按名稱asc排序”,新的String [] {age,gender,job})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM