4

のクエリメソッドを使用していますSQLiteDatabaseこのメソッドのorderByパラメータについて助けが必要です。

Cursor cursor = sqLiteDatabase.query(tableName, tableColumns, whereClause, whereArgs, groupBy, having, orderBy);

public Cursor getAllCustomexp(int TID) throws SQLException 
{
    Cursor mCursor =
            db.query(false, CEXP_TABLE, new String[] {KEY_CEID, FLD_CETID, FLD_CEEID, FLD_CEMID,
            FLD_CEAMT, FLD_CESEL}, FLD_CETID + " = " + TID, null,
            null, null, FLD_CEEID, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}

質問 1: 上記のクエリでは、結果セットはFLD_CEEID昇順または降順で並べ替えられますか?

質問 2: 結果セットを最初に並べ替える必要がある場合、このクエリのパラメーターによる順序FLD_CEEIDFLD_CEMIDどのように作成すればよいですか。

この方法で複数注文することはできますか?

4

2 に答える 2

5

SQLite ドキュメントから:

複数の行を返す SELECT ステートメントに ORDER BY 句がない場合、行が返される順序は未定義です。または、SELECT ステートメントに ORDER BY 句がある場合は、ORDER BY に関連付けられた式のリストによって、行がユーザーに返される順序が決まります。行は最初に ORDER BY リストの左端の式を評価した結果に基づいて並べ替えられ、次に左端から 2 番目の式を評価することによって同点が解消されます。すべての ORDER BY 式が等しい値に評価される 2 つの行が返される順序は定義されていません。各 ORDER BY 式の後に、必要に応じてキーワード ASC (小さい値が最初に返される) または DESC (大きい値が最初に返される) のいずれかを続けることができます。ASC も DESC も指定されていない場合、

回答 1: 結果セットは昇順で並べ替えられます。

答え 2:

String orderBy = FLD_CEEID + " ASC, " + FLD_CEMID + " ASC";
db.query(false, CEXP_TABLE, new String[] {KEY_CEID, FLD_CETID, FLD_CEEID, FLD_CEMID,
        FLD_CEAMT, FLD_CESEL}, FLD_CETID + " = " + TID, null,
        null, null, orderBy, null);
于 2012-09-09T13:03:41.850 に答える
0

のように動作しSQL Select Order Byます。詳細はhttp://en.wikipedia.org/wiki/Order_by_(SQL )で確認できます。

于 2012-09-09T12:42:53.843 に答える