Zrobiłem kilka badań, ale nic nie wydaje się pasować do moich potrzeb. Mam tabelę bazy danych, która zawiera niektóre dane pobierane z usługi internetowej.Warunkowo NA DUPLIKACIE KEY UPDATE
Użytkownik wykonuje pewne zadania dla każdego rekordu, a następnie oflaguje go jako "przetworzony". Mam więc dodatkowe pole db (nie oparte na danych, które otrzymuję od WS) o nazwie "przetworzone", domyślnie ustawione na 0, i na 1, gdy użytkownik wykonał swoją pracę.
Każdego dnia sprawdzam WS, a jeśli zmieni się kod statusu, chcę zaktualizować wiersz i przywrócić go do 0 (aby użytkownik mógł ponownie obsłużyć).
Powiedzmy to mój db ...
+------+------------+-------+------------+
| id | statuscode | foo | processed |
+------+------------+-------+------------+
| 123 | 66 | bar | 1 |
+------+------------+-------+------------+
- Jeśli nie jest to rząd z tym samym kluczem (id) Chcę wstawić nowy rekord.
- Jeśli istnieje wiersz z tym samym kluczem i zmianą "foo", chcę zaktualizować dowolną wartość z wyjątkiem pola "przetworzone".
- Jeśli istnieje rząd z tym samym zmianę klucza i StatusCode chcę zaktualizować dowolną wartość i zestaw przetwarzane 0.
myślę, że ON duplikat KEY UPDATE z pewnym warunkiem mógłby działać, może z niektórymi CASE lub IF condition ... czy się mylę? Wszelkie sugestie są mile widziane, z góry dzięki!
jak są u zamiar wykryć 'foo 'zmienić? Czy masz wartość dla siebie, aby sprawdzić to przed kolumną foo? – nawfal