![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 11.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
pragnę odnaleźć dane z bazy przy pomocy słowa w stringu, LIKE wyszukuje po literce w stringu, mi chodzi aby wyszukiwało mi po konkretnych słowach. Bo jeżeli w bazie mam tekst 'tralalala' to wystarczy ze dam LIKE{$a$} i juz mam, a ja tak nie chce. Chce tak: baza > 'witajcie moi drodzy' i chce zrobić, że jeśli wpisze 'moi' to zwróci mi wynik. Przepraszam, ale nie umiem tego jaśniej wytłumaczyć. Ten post edytował batman 12.08.2009, 07:37:19 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zależy od tego jak to ma działać. Jeśli masz zamiar zrobić z tego coś w stylu "chmury tagów" to wspomniany przez Erixa system z tabelą złączeniową będzie chyba najlepszy. Gorzej gdy frazy mają być wyszukiwane w całości tekstu, tytule i czymś tam jeszcze. Wtedy jedyną chyba sensowną opcją będzie ustawienie na tych polach tabeli indexu full-text. Ma to tę zaletę, że działają wtedy dodatkowe kwantyfikatory wyszukiwania znane z wyszukiwarek jak + czy - co może ładnie posegregować nam wyniki pod względem trafności. Inną zaletą jest częściowe wyszukiwanie. LIKE i wariacje (również tagi o jakich wspomina Erix) słowa "awaria" i "awarie" potraktują jako dwa osobne co sprawi, że w wynikach jednego nie zobaczymy drugiego. Może się zdarzyć, że ze słowem "awarie" znajdzie tylko 3 artykuły, choć "awaria" ma ich 10, ale wyszukiwanie, nie używając full-text, nie uwzględnia ich. Minusem jest niestety szybkość działania. No ale albo szybkość, albo trafność wyników. Używania LIKE czy %LIKE% radziłbym unikać.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 06:22 |