4

それでも私は昇順で1月から12月の形でFacebookの友達のリストを取得しています。以下の画像を参照してください:

しかし今、次のような誕生日の形でFacebookの友達のリストを表示したい:

最近使ったものを一番上に

以下のクエリを使用して、友達のリストを取得しています。

   Log.d(LOG_TAG, "requestFriends(" + ")");
    Date date = new Date();
    String current_date = null;
    SimpleDateFormat dateFormatter = new SimpleDateFormat("MM-dd-yyyy");
    current_date = dateFormatter.format(date);
    System.out.println("Current Date is:- " + current_date);
    String query = "select name, birthday, uid, pic_square from user where uid in (select uid2 from friend where uid1=me()) and birthday_date>= "
    + current_date + " order by birthday_date";        

今後の誕生日の形式でリストを取得するために使用するクエリを教えてください

4

1 に答える 1

1

このクエリは、ログインしているユーザー アカウントのすべての友達のリストを取得します。

SELECT uid, name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) ORDER BY birthday_date ASC

これの落とし穴は、ユーザーが Facebook アカウントに誕生日を入力したかどうかを確認する必要があることです。

より良いクエリは次のとおりです(少なくとも私がより良いと思うもの):

SELECT uid, name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) AND birthday_date >= '02/01' AND birthday_date <= '07/01' ORDER BY birthday_date ASC

これは、Facebook アカウントに誕生日を入力したユーザーのリストだけを取得します。また、 を使用するとORDER BY birthday_date、結果セットの最後の誕生日まで、次の誕生日が常に一番上に表示されます。

これの落とし穴は、お気軽にテストしてください。2 番目のクエリを使用して、1 年分の誕生日を取得したことは一度もありません。SO 私のアプリケーションでは、一度に 6 か月分のデータを呼び出します。これは常に正確であり、非常に優れています。

リストの一番上に次の誕生日を表示する必要があることを考えると、2 番目のクエリが目的に合っていると思います。常に正確な結果を得るために現在の日付と月を取得するには、次の例を使用して (単純な Google 検索または SO 検索でさらに多くの情報が得られます)、現在の日付と月を取得します。

http://www.asbhtechsolutions.com/android-tutorials/android-get-current-date-and-time

次に、a を連結し、Stringそのインスタンスをクエリとして渡します。

注:クエリで使用される月と日付は、常に 2 桁である必要があります。

于 2013-02-20T04:47:29.733 に答える