![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Witam
mam problem przy otrzymywaniu odpowiednich i czystych wynikow za pomoca LIKE, wiec przerzucilem sie na SIMILAR TO majac nadzieje ze to pomoze, niestety jest gorzej niz przedtem :/. Problem jest taki ze staram sie szukac ciagu znakow ktory ma nastepujace cechy: - jest na poczatku - jest na koncu - jest gdzies pomiedzy poczatkiem a koncem czyli wyszedlem z zalozenia ze wyrazenie powinno miec wyglad taki: (^|\s)tekst(\s|$). Gdyz uzywajac LIKE i % czasami ciag znakow byl w jakims innym a tu chodzi o oddzielne slowo/slowa. Niestety wyniki sa rzadne a ciag znakow sie pokrywa z wieloma. Ktos moze wie gdzie popelniam blad? Bylbym wdzieczny za pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Jabol @ 2005-07-12 21:18:55) Szukasz x słów, które muszą być obok siebie? to oznacza, że będziesz prawdopodobnie musiał zrobić x! wyrażeń połączonych OR, albo 3*(x!) jeżeli będziesz to robił przez LIKE. Radze Ci poszukać każdego słowa osobno i tym się zadowolić, bo ten poprzedni sposób przy większej ilości słów się rozjedzie kompletnie. Czyli
Szukam slow ktore musza wystapic w rekordzie czy beda obok siebie to mnie nie interesuje, takze wyrazen bedzie kilka razy mniej niz LIKE'ow, tylko wlasnie w tym problem ze to wyrazenie mi nie dziala a to bylo moje pytanie jak je poprawic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Sprawdze z tylda tak jak podales, czy to cos da (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . === Sprawdzilem, tylda dziala jak LIKE z % ale do niej tez mozna wyrazenie dac przy wyszukiwanym slowie/frazie. Niestety to jest problem ktorego nie moge zbagatelizowac robiac prowizorke poniewaz mam baze z kilkoma milionami rekordow i nie jestem jej w stanie przeszukac recznie czy wyrzucac bledne wyniki pozniej... ROZWIAZANIE PROBLEMU! Kod ...WHERE komorka ~* '(^| )tekst1( |$).*' AND komorka ~* '(^| )tekst2( |$).*' AND... W tym zapytaniu wyszuka komorki z dwoma slowami ktore sie znajduja i BEDA TO POJEDYNCZE SLOWA nie zawarte w innych ciagach znakow. Ufff pomeczylem i dziala, problemem byl znacznik spacji (\s) niechcial tego przyjmowac... dlatego wpisalem zwykla spacje w wyrazeniu i dziala, moze ktos bedzie madrzejszy i znajdzie moj blad. Ten post edytował lukass 12.07.2005, 23:03:59 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 21:08 |