=?iso-8859-2?q?Jaki_znak_pocz=B1tku_linii=3F?=
=?iso-8859-2?q?Wojtek_Zieli=F1ski?= - 13-02-2007 00:04
=?iso-8859-2?q?Jaki_znak_pocz=B1tku_linii=3F?=
Witam,
Chciałem napisać zapytanie w MySQL (5.0), które znajdywałoby rekordy z polem typu TEXT, w którym znajdywałyby się linie zaczynające się od "<br />" i usuwało ten znacznik. Zrobiłem takie zapytanie:
UPDATE nazwa_tabeli SET nazwa_pola = REPLACE( "^<br />", "", nazwa_pola);
Niestety powyższe nie działa. Z tego co się zorientowałem chodzi o znak początku linii. Nie korzystałem wcześniej z funkcji REPLACE ani z wyrażeń regularnych w MySQLu, więc byćmoże robię to w dziwny sposób i jest na to inna matoda.
-- Pozdrawiam, Wojtek Zieliński
Grzegorz Danowski - 13-02-2007 00:04
=?iso-8859-2?Q?Re:_Jaki_znak_pocz=B1tku_linii=3F?=
"Wojtek Zieliński" <wojtek.zielinski@gmail.com> wrote in message news:1171245928.958925.185610@k78g2000cwa.googlegr oups.com... <cite> Chciałem napisać zapytanie w MySQL (5.0), które znajdywałoby rekordy z polem typu TEXT, w którym znajdywałyby się linie zaczynające się od "<br />" i usuwało ten znacznik. Zrobiłem takie zapytanie:
UPDATE nazwa_tabeli SET nazwa_pola = REPLACE( "^<br />", "", nazwa_pola);
Niestety powyższe nie działa. Z tego co się zorientowałem chodzi o znak początku linii. Nie korzystałem wcześniej z funkcji REPLACE ani z wyrażeń regularnych w MySQLu, więc byćmoże robię to w dziwny sposób i jest na to inna matoda. </cite>
Inny pomysł, to wyszukanie rekordów spełniających Twój warunek i zamianę nazwy na nazwę bez pierwszych 6 znaków, jeśli wierszy spełniających warunek masz stosunkowo mało, to takie rozwiązanie powinno być dużo szybsze niż użycie Regexów. Przykład w MS SQL, więc pewnie będziesz musiał nieco zmodyfikować składnie:
UPDATE nazwa_tabeli SET nazwa_pola = SUBSTRING(nazwa_pola, 7, Len(nazwa_pola) - 6) FROM nazwa_tabeli WHERE nazwa_pola Like '<br />%' -- Pozdrawiam Grzegorz
Lemat - 13-02-2007 00:04
Wojtek Zieliński napisał(a): > Witam, > > Chciałem napisać zapytanie w MySQL (5.0), które znajdywałoby rekordy > z polem typu TEXT, w którym znajdywałyby się linie zaczynające się od > "<br />" i usuwało ten znacznik. Zrobiłem takie zapytanie: > > UPDATE nazwa_tabeli SET nazwa_pola = REPLACE( "^<br />", "", > nazwa_pola); > > Niestety powyższe nie działa. Z tego co się zorientowałem chodzi o > znak początku linii. Nie korzystałem wcześniej z funkcji REPLACE ani z > wyrażeń regularnych w MySQLu, więc byćmoże robię to w dziwny sposób i > jest na to inna matoda.
nie wygląda mi na to aby funkcja replace przyjmowała wyrażenia regularne przyjrzałbym się też kolejności parametrów tej funkcji http://dev.mysql.com/doc/refman/5.1/...functions.html
UPDATE nazwa_tabeli SET nazwa_pola = REPLACE(nazwa_pola, "<br />", "") WHERE bazwa_pola REGEXP "^<br />"
-- Pozdrawiam Lemat pomóż zwalczyć spam z ICIC: http://www.lemat.priv.pl/index.php?m=page&pg_id=106 podlinkuj się do http://icic.pl
Marcin P. - 13-02-2007 00:04
> http://dev.mysql.com/doc/refman/5.1/...functions.html > > UPDATE nazwa_tabeli SET nazwa_pola = REPLACE(nazwa_pola, "<br />", "") > WHERE bazwa_pola REGEXP "^<br />" >
tyle, że to wywali wszystkie <br/> z rekordów zaczyanjących się "<br/>", a nie tylko pierwszy.
Serdeczne pozdrowienia -- Marcin.
Lemat - 13-02-2007 00:04
Marcin P. napisał(a): >> http://dev.mysql.com/doc/refman/5.1/...functions.html >> >> UPDATE nazwa_tabeli SET nazwa_pola = REPLACE(nazwa_pola, "<br />", "") >> WHERE bazwa_pola REGEXP "^<br />" >> > > tyle, że to wywali wszystkie <br/> z rekordów zaczyanjących się "<br/>", a nie tylko pierwszy.
no to zamiast replace użyć substringa czy jakoś podobnie
-- Pozdrawiam Lemat pomóż zwalczyć spam z ICIC: http://www.lemat.priv.pl/index.php?m=page&pg_id=106 podlinkuj się do http://icic.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?UTF-8?Q?=5Bmysql=5D_jak_pobra=C4=87_warto=C5=9B=C4=87_ AUTO=5F?==?UTF-8?Q?INCREMENT=3F?=
Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8
=?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?=
=?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?=
zanotowane.pldoc.pisz.plpdf.pisz.pladwokat.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|