Я собираюсь пойти и опубликовать свой страшный код MySQL:
INSERT INTO monthlystats (id, server, time, uptime, players, rank)
VALUES (09126, 6, 0912, 302, 0, 1)
ON DUPLICATE KEY UPDATE uptime = if(302 > uptime, 302, uptime), if(0 > players, 0, players), if(1 > rank, 1, rank)
Хорошо, позвольте мне объяснить, что мне нужно делать.
- "id" имеет уникальный индекс. Если этот индекс еще не существует, я хочу вставить эти значения.
- Если есть повторяющийся ключ, я хочу вместо этого ОБНОВИТЬ каждое из трех полей, только если новые значения больше, чем те, которые в настоящее время находятся в таблице.
Похоже, я делаю что-то ужасно неправильно, и я совершенно откровенно не знаю, что делать. Я пытался сделать это хорошо, но оказалось, что это ужасный беспорядок.
Я надеюсь, что кто-то может привести меня в правильном направлении и помочь мне научиться (и всем, кто пытается учиться), как это делать. Спасибо.