我有一張包含兩列的表。在這個例子中,我刪除了一些額外的列。實際上有5個其他欄。帶更新值的MySQL更新行
- DIR
- MSGNUM
據填充像這樣:
msgnum dir
0 /var/spool/asterisk/voicemail/test/1/INBOX
1 /var/spool/asterisk/voicemail/test/1/INBOX
2 /var/spool/asterisk/voicemail/test/1/INBOX
3 /var/spool/asterisk/voicemail/test/1/INBOX
4 /var/spool/asterisk/voicemail/test/1/INBOX
5 /var/spool/asterisk/voicemail/test/1/INBOX
0 /var/spool/asterisk/voicemail/test/1/Old
1 /var/spool/asterisk/voicemail/test/1/Old
0 /var/spool/asterisk/voicemail/test/2/INBOX
1 /var/spool/asterisk/voicemail/test/2/INBOX
注意MSGNUM不是唯一的。每個'dir'值都是獨一無二的。
刪除記錄時,我想重新計算並更新每行的msgnum字段,並保留msgnum的順序。因此,如果刪除了msgnum = 3的記錄,則msgnum 4和5會更新爲「將它們移動」。
是否有可能在純MySQL中做到這一點?
感謝
此解決方案未考慮'dir'字段。請注意,msgnum不是唯一的。每個'dir'值都是獨一無二的。 –
@Dan_J如果你不知道你的問題,應該怎麼知道?但是 - 您可以添加條件'AND dir = OLD.dir' –
@Paul它在示例數據中顯示。 –