によって特定の日付に基づいてすべての行を更新する方法:私はMySQLのテーブル次ている単一のMySQLのクエリ
私は日が同じvid
ための最も早い場合ような方法で
num
列を更新する必要が
=============================
id | vid | date | num |
=============================
1 | 1 | 2017-01-01 | |
2 | 1 | 2017-02-20 | |
3 | 2 | 2017-02-25 | |
4 | 1 | 2017-03-05 | |
=============================
、その後、num個の列は、それ以外の場合は、だから、2になります、1になり、データベース/テーブルを更新した後、テーブルは次のようになります。2017-01-01
よう
=============================
id | vid | date | num |
=============================
1 | 1 | 2017-01-01 | 1 |
2 | 1 | 2017-02-20 | 2 |
3 | 2 | 2017-02-25 | 1 |
4 | 1 | 2017-03-05 | 2 |
=============================
がvid=1
ための最も早い日付ですので、num
は012です。したがって、vid=1
の他の行はすべて2
です。一方、vid=2
の場合、num列はvid=2
の唯一の行であるため1になります。
どのようにして上記のロジックに基づいて自動的にテーブル全体を自動的に更新するように、単一のmysqlクエリを作成できますか?あなたのテーブルを想定し
あなたが渡すことができないとして、このソリューションが動作しません。サブクエリの中で同じテーブルを更新している間 –