UPDATE kolumn na podstawie wartości innej kolumny

0

Witam
Mój problem polega na tym, że mam bardzo dużo rekordów w bazie i będę musiał wczytać do niej nowe dane, jednak nie jestem w stanie ręcznie dodać brakujących pól z ID. Może istnieje możliwość stworzenia zapytania UPDATE, które dla danych z przykładowej tabeli doda automatycznie wartości pól "id1" oraz "id2" gdzie występuje 0, na podstawie kolumny miasto (czyli jeśli miasto to Kielce,zapytanie podmieni 0 na odpowiednio id1=2 oraz id2=3, dla Radomia id1=5 a id2=7). Pole "idd" jest wartością unikalną dla każdego rekordu.

Tabela Miejscowosc

idd | id1 | id2 | miasto | ulica
1234 | 0 | 0 | Kielce | Długa
2345 | 2 | 3 | Kielce | Krótka
3456 | 2 | 3 | Kielce | Wąska
4567 | 2 | 3 | Kielce | Szeroka
5678 | 0 | 0 | Radom | Chuda
6789 | 5 | 7 | Radom | Gruba
7890 | 5 | 7 | Radom | Asfaltowa
8901 | 5 | 7 | Radom | Kamienna

//EDIT tabela jest dłuższa, dodałem informacje o ulicy

Przy okazji zapytam, czy istnieje możliwość dodania tylko unikalnych wartości zapytaniem INSERT ? Chodzi o to, że mam bazę, w której jest powiedzmy 8000 rekordów, natomiast pobrałem bazę aktualizującą, która ma tych rekordów 9000 i chciałbym dodać do bazy tylko te rekordy, które są unikalne (zapytanie pomija powtarzające się "idd").

1

Należy dropnąć tą bazę i tym razem zadbać o to żeby była w 3FN. Twoja ewidentnie nie jest, bo sam widzisz że masz tzw anomalię ;] Powinienes mieć OSOBNĄ tabelę na miasta która miałaby nazwę i te twoje dwa ID, a w tabeli którą nam pokazałes powinieneś mieć tylko ID wskazujące na jeden rekord z tamtej tabeli.

0

Niestety przejąłem tę bazę po kimś i jest już tak zbudowana, do tego opracowany system w php, także wolałbym w tym nie grzebać, żeby wszystko się nie posypało...
Edytowałem pierwszy post, tabela ma więcej kolumn, podałem tylko te, które najbardziej mnie interesowały.

1 użytkowników online, w tym zalogowanych: 0, gości: 1