![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Postów: 7 Pomógł: 0 Dołączył: 25.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym moc wyświetlić wpisy z bazy, w ktorych w polu tresc znajduje sie cały wyraz (nie ciąg znakow).
W funkcji preg_match jest możliwość zastosowania w tym celu kotwicy \b . Probowałem ja rowniez zastosowac w skladni SQL`a:
ale takie rozwiązanie nie działa (nie sa zwracane żadne wyniki, bez kotwic \b wyniki sa zwracane). Może jakieś podpowiedzi jak rozwiązać ten problem, lub linki z opisem rozwiązania, bo sam praktycznie nic w Google ani w wewn. wyszukiwarce forum.php.pl nie znalazłem. Zależy mi aby wykonać to zadanie w zapytaniu SQL. Dziekuję z gory za ew. podpowiedzi. Pozdr. R. Drozd
Powód edycji: Dodaje tag /~strife/
-------------------- Apache 2.0.59 | PHP 5.2.3 | MySQL 5.0.41 | PhpMyAdmin 2.10.2
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 300 Pomógł: 1 Dołączył: 22.09.2003 Skąd: Czeladź Ostrzeżenie: (0%) ![]() ![]() |
nie wiem czy o to chodzi, ale nie możesz poprostu użyć polecenia LIKE (lub ILIKE) w połączeni z "%...%" i spacjami?
np: Chociaż tutaj może być problem jeżeli dany wyraz znajduje się na końcu lub początku... albo nie...
Może rozwiązanie mało elegancke, ale powinno działać:) regexy uważam za bardzo wolne przy dużych bazach -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Postów: 7 Pomógł: 0 Dołączył: 25.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hmm troszkę topornie, ale to jakieś rozwiązanie. Pozostawał by jeszcze problem z interpunkcją stojącą przy wyrazach np. kropki przecinki...
Dalej jednak będę obstawał przy regex, ma ktoś jakieś pomysły?? -------------------- Apache 2.0.59 | PHP 5.2.3 | MySQL 5.0.41 | PhpMyAdmin 2.10.2
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Po co? Like faktycznie działa szybciej, lepiej i w ogóle...
A interpunkcja da się zrobić też... W regexpach nie ma na to mniej topornego sposobu. -------------------- ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Postów: 7 Pomógł: 0 Dołączył: 25.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
A interpunkcja da się zrobić też... Masz jakiś pomysł, gotowe rozwiązanie, albo jakąś podpowiedź jak poradzić sobie z interpunkcją przy zastosowaniu "LIKE"?? -------------------- Apache 2.0.59 | PHP 5.2.3 | MySQL 5.0.41 | PhpMyAdmin 2.10.2
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Dodajesz do poprzedniego kodu:
Chociaż toporność tego sposobu nie zna granic - musisz wszystkie możliwości uwzględniać... ALe z wyrażeniami regularnymi tak samo przecież... -------------------- ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Postów: 7 Pomógł: 0 Dołączył: 25.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Chociaż toporność tego sposobu nie zna granic - musisz wszystkie możliwości uwzględniać... Jeśli dodać kilka pol do przeszukania to będzie to dopiero topor:). ALe z wyrażeniami regularnymi tak samo przecież... No gdyby można było używać kotwicy /b (a z tego co sprawdzałem to nie działa) to kod byłby o wiele mniej toporny. Chyba pozostanę przy funkcji preg_match wykonywanej na całościowych wynikach. -------------------- Apache 2.0.59 | PHP 5.2.3 | MySQL 5.0.41 | PhpMyAdmin 2.10.2
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 15.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Proponuje poczytac Full-Text Search Functions na stronie MySQL'a
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 07:28 |