SQL - Dodawanie rekordów - poziom trudne

0

Jak w temacie. Ale rozwinę o co chodzi.

Mam tabelę w której niektóre wartości są wypełnione, a niektóre są puste o wartości NULL.
Chcę dodać mnóstwo rekordów w jednym poleceniu SQL ale w taki sposób aby nie usunął mi tego co już jest. Gdyż zapytanie które stosuję zawiera wyrażenie regularne i podczas wykonywania usuwa mi wszystko inne, a wstawia to co trzeba.

Czy jest jakieś polecenie/instrukcja warunkowa która pozwoli mi to zrobić ?

4

Czy jest jakieś polecenie/instrukcja warunkowa która pozwoli mi to zrobić ?

Tak - otóż wystarczy z Twojego zapytania usunąć tę część, która jest odpowiedzialna za wywalanie rekordów.

Bez większego kontekstu (np. treści zapytania) ciężko powiedzieć coś więcej.

0

nie mam tam czegoś co mi usuwa dane.

Tabelę mam taką
screenshot-20200407205214.png

a zapytanie jest takie

UPDATE `tabela2`
SET
`pNr_mieszkania`= REGEXP_SUBSTR(`pAdres`,'[\\/]\\d{1,4}[a-zA-Z]|[\\/]\\d{1,4}'))

i cały trick polega na tym, że to zapytanie dodaje również liczby. Z tym, że te co już obecnie są to je usuwa, a chciałbym, żeby one były i dodano te, których brakuje

3

nie mam tam czegoś co mi usuwa dane.

vs

te co już obecnie są to je usuwa

hmmm

Tak czy siak: co konkretnie chcesz zrobić? O co chodzi w tym zapytaniu? Co ma ono uzupełnić?

0

w sumie rozwiązałem problem z tego wątku i piszę instrukcję. Jestem na jej ukończeniu i wyskoczył mi nieoczekiwany problem...

w tym zapytaniu chodzi o to, że wyrażenie regularne wybiera konkretne liczby z adresu które stoją ZA znakiem / np /30 zapytanie działa właściwie ale przy próbie UPDATE wywala w tej kolumnie wszystko inne co zrobiłem w poprzednich krokach...

dobra, już sobie poradziłem wstawiając w puste miejsca wartość null i wykonałem właściwe zapytanie z warunkiem where is null

UPDATE `tabela2`
SET `pNr_mieszkania`=null
WHERE 
`pNr_mieszkania`=''

chociaż nadal się zastanawiam jak osiągnąć rezultat który chcę bez takich kombinacji...

1

To może od początku piszesz o dodawaniu rekordów, czyli spodziewałbym sie INSERT tym czasem wykonujesz UPDATE co jest aktualizowaniem rekordów.

zaden rekord nie jest usuwany, co najwyżej kolumna pNr_mieszkania jest aktualizowana nie do oczekiwanej wartości.

Więc o co Ci chodzi?

0

Odpowiadaj w postach, pokazujesz kolumnę która aktualizujesz, nie pokazujesz źródłowej pAdres.

Usestymatyzujmy, pokaża co masz w pAdres i co jest "usuwane" z p_nrmieszkania

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