Witam serdecznie,
Osobiście bałbym się zaangażować w to php, a tym bardziej phpmyadmina, chyba że istnieje możliwość zrobienia tego jednym zapytaniem, ale na tą chwilę nie jestem w stanie za bardzo nic wymyślić. Musiałbym zależeć w specyfikacje MySQL bo dawno go nie używałem i raczej coś by się znalazło, ogólnie wydaje mi się że powinno się dać radę to zrobić 1 zapytaniem oczywiście złożonym z podzapytania.
Ale jeśli nie chcesz siedzieć nad MySQL i zabawą w zapytania które wypadałoby przetestować na kopii tabeli, a dopiero potem na produkcyjne db to proponowałbym jakiś program konsolowy, np w c++ (może być coś innego ale zrezygnowałbym z języków skryptowych takich jak php). Taki program wyglądałby mniej więcej tak:
-
Select do bazy i pobranie 1 rekordu, każdy kolejny można pobierać iteracyjnie lub przez odpowiedniego selecta w którym określisz jakiego wzoru szukasz czyli %s_%s w tedy nie będzie pobierał już zaktualizowanych rekordów.
-
sprawdzenie czy należy dokonać zmiany jeśli tak to podmienić _ na -
-
zaktualizować rekord
i robić to w pętli dopóki pierwszy select zwraca jakiś wynik lub w przypadku iteracyjnej metody do czasu aż przejdziesz po wszystkich rekordach.
Dodatkowo możesz do programu wprowadzić jakieś logi z ewentualnymi błędami funkcję star/stop czy informacje o postępie.
Jeśli chciałbyś użyć do tego php’a to tylko i wyłącznie odpalaj skrypt w konsoli. Jeśli będziesz chciał go wywołać jak skrypt serwera www może nie wykonać się cały ze względu na długi czas jego wykonywania.
EDIT:
Nawet jak znajdziesz sposób na zrobienie tego przez sql, nie rób tego w phpmyadminie tylko przez clienta mysqla, ponieważ obawiam się że skrypt phpmyadmina może się “zadławić”.
UPDATE tabela SET kolumna = REPLACE(kolumna,'_','-')[/code]
No tak, w bazach danych tak to się zwie. Poprawiłem, chociaż komórka to jak kolumna biorąc inny kontekst zbioru, jednak pomylić tabelę z kolumną to już nie tak ładnie
Chyba raczej UPDATE tabela SET kolumna = REPLACE(kolumna,’_’,’-’)
dziękuje, pomogło
A taki referat Fizyda - specjalista od baz danych uskutecznił. Ile czasu wykonywało sie zapytanie? 7 sekund?