2
まず、mysql
の制限内でこれが可能かどうかはわかりません。とにかく私はそれを投稿します。テーブルフィールドの値を隣接行で更新する
私はid
とdate
のテーブルを持っているとしましょう。しかし何らかの理由により、日付の一部が表に欠落していました。私が基本的に必要とするのは、行方不明の日付を隣接行の日付値で更新することです。私はID 1001
ため欠落日付値を更新するためにいくつかのルールを持っている上記の例によれば
+-----------+---------------------+
| id | date |
+-----------+---------------------+
| 1000 | 2016-11-22 11:57:59 |
| 1001 | NULL |
| 1002 | 2016-11-22 12:17:41 |
| 1003 | 2016-11-22 13:09:24 |
| 1004 | 2016-11-22 22:40:31 |
| 1005 | 2016-11-22 13:59:40 |
| 1006 | NULL |
| 1007 | NULL |
| 1008 | 2016-11-22 15:10:29 |
| 1009 | 2016-11-22 22:40:31 |
+-----------+---------------------+
、ベローズとして1006
& 1007
。
- 欠けている日付がある場合は、常に上のレコードで更新する必要があります。例:
1001
は、1000
の日付値で更新されます。2016-11-22 11:57:59
- レコードの更新は
id acs
の順番で行う必要がありますので、上記の行に値がないことに問題はありません。初期には欠落していても前に更新されるにもかかわらず、たとえば:1007
:1006
が最初に欠落していますが、1005
で更新される場合、1007
になると、すでに1006
に値があります。最終的には両方の1006
&1007
2016-11-22 13:59:40
である1005日付値を持っているが、私ははっきりと問題を説明し、しかし、まだ私は、これは純粋なmysql
クエリで可能であるかわからない願っています。