Masowa zmiana rekordów w MySQL

0

Witam serdecznie,
Mam jedną tabelę i jedną kolumnę do zmiany.
Muszę wszystkie wpisy które są w formie jakasnazwa_1739 zamienić na jakasnazwa-1739.

Baza ma 4000000 rekordów i będę musiał ją chyba zmienić w phpmyadmin (o ile się da).

Wiecie może czy jest możliwość zmiany rekordów za pomocą zapytania?

Czy trzeba zrobić w php selcta wyświetlającego wszystkie rekordy i potem str_replace("_", "-",$dane)?

1

Update nazwa_tabeli set nazwa_kolumny= 'jakasnazwa-1739' where nazwa_kolumny = 'jakasnazwa_1739'

1

Finalnie można zrobić update jak podał Ci @lukee90 ale zamiast

nazwa_kolumny = 'jakasnazwa_1739'

musiałbyś użyć sprytniejszego warunku z like

Jeśli twój ciąg znaków zawsze kończy się na _1739 to zapytanie wyglądałoby mniej więcej tak:
```sql
update tabela set kolumna = replace(kolumna, '_', '-') where kolumna like '%_1739'
0
woolfik napisał(a):

Finalnie można zrobić update jak podał Ci @lukee90 ale zamiast

nazwa_kolumny = 'jakasnazwa_1739'

musiałbyś użyć sprytniejszego warunku z like

Jeśli twój ciąg znaków zawsze kończy się na _1739 to zapytanie wyglądałoby mniej więcej tak:
> 
```sql
update tabela set kolumna = replace(kolumna, '_', '-') where kolumna like '%_1739'

dziękuję, pomogło :)

0

@woolfik nie tak szybko... w Like _ oznacza DOKŁADNIE jeden znak, więc 'ALA1789' LIKE '%_1789' zwróci True

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