0

mysql が返した行から最大の時間値を検索するスクリプトを探しています。Mysql は次のような行を返しました:

(123, 'new', datetime.datetime(2013, 1, 2, 16, 6, 21))
(122, 'old', datetime.datetime(2012, 12, 3, 18, 08, 36))
(125, 'new', datetime.datetime(2012, 12, 13, 20, 18, 16))

私は試しました:

value = 0
for row in rows:
  if row[2] > value:
    value = row
print value

そのように表示されるrow [2]値を出力すると

for row in rows:
 print row[2]

output: 2013-01-02 16:06:21
        2012-12-03 18:08:36
        2013-12-13 20:18:16
4

2 に答える 2

2

Anders Johanssonがあなたの質問にきちんと答えます。

ただし、データのその行のみを要求するだけで、最初から Python でこれを行う必要を回避することもできます。次のような SQL ステートメント:

SELECT DateTime FROM MyTable
ORDER BY CASE WHEN Status IS 'new' THEN 1 ELSE 0 END DESC, DateTime DESC LIMIT 1;

あなたがやろうとしていることを達成し、その1つのデータポイントのみを提供します.

アップデート:

SELECT mydate FROM MyTable
WHERE type=4
ORDER BY FIELD(status, 'new', 'waited', 'old'), mydate DESC
LIMIT 1;

SQLフィドル

于 2013-01-03T04:58:00.377 に答える
1

以下を簡単に使用できます。

print max(x[2] for x in rows)
于 2013-01-03T04:53:29.670 に答える