Strona 1 z 1
[+] SQL (MYSQL) zapytanie zmiany wierszy tabeli
: 14 listopada 2011, 15:06
autor: sethiel
W tabeli mam różne wiersze między innymi abcde-abcde-abc-abcde, potrzebuję zrobić takie zapytanie SQL, które zamieni mi abcd na 1234 aby wiersz wyglądał 1234e-1234e-abc-1234e.
Jak podejść do tego.
Na razie mam początek:
Kod: Zaznacz cały
SELECT * FROM tabela WHERE kolumna LIKE "%abcd%";
: 14 listopada 2011, 22:33
autor: Bastian
Kod: Zaznacz cały
UPDATE tabela SET kolumna='1234e' WHERE kolumna IN ( SELECT kolumna FROM tabela WHERE kolumna LIKE "%abcd%");
: 15 listopada 2011, 09:03
autor: mlyczek
Moim zdaniem to zagnieżdżone zapytanie jest niepotrzebne. Można po prostu tak:
Kod: Zaznacz cały
UPDATE tabela SET kolumna='1234e' WHERE kolumna LIKE "%abcd%";
Wtedy UPDATE zmieni tylko te wiersze w których kolumna pasuje do wzorca %abcd%
: 15 listopada 2011, 13:16
autor: mariaczi
MySQL jest troszkę ubogi w funkcje, zatem proponuję takie rozwiązanie.
http://inspirationgeek.com/blog/index.p ... dans-Mysql
I na przyszłość się też pewnie przyda.
: 15 listopada 2011, 15:09
autor: sethiel
Dzięki.
Mlyczek,Bastian - ale kolumna wtedy bedzie o takiej wartosci, nie bedzie rekursywnie przetrząsał tekstu.
mariaczi - główny trzon funkcji translate to replace.
W końcu suma sumarum znalazłem:;
Kod: Zaznacz cały
update tabela set `kolumna`=( [B]replace[/B] (`kolumna`,'abcd', '1234')) where kolumna2 like "%do_poprawek%";
Teraz muszę z tego skrypt zrobić - dla jednych pół godziny dla innych tydzień
- poki co drugi dzień.