0

dateフィールド( 、、、など)companyを持つデータテーブルがあります。問題はこれらのフィールドに関連しているため、これらのフィールドのみを表示します。テーブルが次のようになっているとします。data_idrank

data_id   |   company  |    date      |   rank

1         |   google   |    23/10/2010|   1

2         |   yahoo    |    23/10/2010|   4

3         |   msn      |    23/10/2010|   8

4         |   google   |    27/10/2010|   3

5         |   yahoo    |    27/10/2010|   1

6         |   msn      |    27/10/2010|   6

7         |   google   |    29/10/2010|   1

8         |   yahoo    |    29/10/2010|   4

9         |   msn      |    29/10/2010|   3

...等々

問題1:

多くのユーザーがいます-user1、user2、user3があるとします。すべてのセッションで[my_company]があります。

ここで、会社ごとに最後に作成された(任意のユーザーが任意の日付に実行できる)エントリのみを表示する必要があります。

例:my_company [user1-yahoo、user2-google、user3-msn]

ユーザーの[my_company]は、会社の値のみを表示し、他には何も表示しません。ただし、最後に入力された値のみを表示します(日付-ここでは2010年10月29日)。

任意の日付の任意のユーザーによって任意の会社のデータが追加されます。このプロセスが続行されると、エントリが増加します。どの日付が最後(会社に固有)であるかを確認するにはどうすればよいですか?

問題2:

特定の日付に最も近い日付を見つける方法は?

4

2 に答える 2

0
  ... where `company_name` = 'companyName' order by `date` desc limit 1

 ... between mydate - INTERVAL and mydate + INTERVAL

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

于 2011-02-10T09:19:46.457 に答える
0

セッション変数を作成するときは、データを日付で並べ替えて、my_companyに順序を付けます。

リストを注文したら、どの日付がどの日付に属しているかを把握できます

また

my_companyにデータを追加している間addid

あなたはによって最も近い日付を見つけることができます

SELECT date FROM table ORDER BY abs(now() - date) LIMIT 1

http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_abs

于 2011-02-10T09:19:54.457 に答える