たとえば、mysql テーブルに ID とタイムスタンプがあるとします。いくつかのレコードが含まれています。各行の挿入時間差をphpで見つけて保存する方法、つまり、行2の挿入時間を行1と比較して結果を保存し、行3と行2を比較して結果を保存する方法......
メッセージの名前にテーブルがあり、フィールドは
id int(11),
timestamp int(11),
body_xml text,
chatname text
このテーブルにはチャット情報が含まれており、合計チャット時間と番号を確認する必要があります。ID を使用して特定のユーザーが利用できる会話の数。そこで、各行の時間差を見つけたいのですが、時間差が10分以上ある場合は、新しい会話と見なします。
私の仕事は、特定のユーザーについての合計チャット時間を見つけることです。そのユーザーがスカイプで利用できる会話の数。
ここで、すべてのチャット情報を mysql テーブルに保存します。
-------------------------------------------------- ---------------------------------------------- id タイムスタンプ メッセージ名 -------------------------------------------------- ---------------------------------------------- 1 2012-10-11 11:18:34 こんにちはラム 2 2012-10-11 11:19:14 hw ru ram 3 2012-10-11 11:20:55 細かいラム 4 2012-10-11 11:55:03 そこにラム 5 2012-10-11 11:56:21 はいラム 6 2012-10-11 11:57:33 その後ラム
上記のテーブルでは、id 1 から 3 までの時間差は 10 分未満ですが、id 4 は id 3 との時間差が 10 分を超えているため、ここでは新しい会話と見なし、id 1 から 3 までの合計時間を変数に格納して、 4 から 6 の合計時間を同じ変数に更新します。ここでは合計会話は 2 です。
Total No. of converation 2 Total Time is xx:xx として出力する必要があります
このコードを試しました
SELECT A.id, A.timestamp, (B.timestamp - A.timestamp) AS timedifference FROM time_diff A CROSS JOIN time_diff B WHERE B.id IN (SELECT MIN (C.id) FROM time_diff C WHERE C.id > A.timestamp) A.id ASCで注文
nullの結果が得られました