2013-10-24 18 views
6

Mam instalację wordpress i złamałem bazę danych mysql. W przypadku postów adresy URL są wymienione jako ".../wordpress // ..." zamiast ".../wordpress/..."Zastąp część łańcucha w kolumnie tabeli mysql

W jaki sposób w SQL można przejść przez każdy wiersz w tabeli i (może użyć wyrażenia regularnego), aby zastąpić każde wystąpienie "ss //" przez "ss /"?

Odpowiedz

15
UPDATE sometable SET somefield=REPLACE(somefield,'/wordpress//','/wordpress/'); 

Edit

@Kevin poprosił mnie o wyjaśnienie tej kwerendy, więc zaczynamy:

  • Zakładam podstawowym UPDATE jest jasne: We wszystkich rzędach sometable przypisać nowy wartość do somefield
  • Funkcja REPLACE() robi dokładnie to, co mówi: Zastępuje tekst. W naszym przypadku używamy starszej wersji: somefield, a następnie zamień wszystkie zalety '/ wordpress //' na '/ wordpress /'
  • te dwie części łącznie oznaczają, we wszystkich wierszach sometable przypisać somefield wartość, która skutkuje, jeśli zastąpisz wszystkie zaległości "/ wordpress //" przez "/ wordpress /" w starej wartości.
+0

Proszę podać wyjaśnienie. – Kevin

+1

@Kevin Byłem całkiem pewien, to jest samo-wyjaśniające! W każdym razie dodam wyjaśnienie. –

+0

Poszedłem gładko, dzięki! – Felipe

Powiązane problemy