![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 2 Dołączył: 23.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, posiadam pola 'a', 'b', 'c'. Piszę do tego wyszukiwarkę. Narazie doszedłem do momentu, że gdy wpiszę szukane "black coffee" to pokazuje dany rekord jeżeli w 'a', 'b' lub 'c' znajdą się dwa wyrazy "black coffee". Jednak chcę zrobić coś takiego:
w 'a' znajduje np "black", i w 'b' lub 'c' "coffee", wtedy też powinien pokazać dany rekord. Jak to ogarnąć bez pisania w query wszystkich możliwych kombinacji? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 10.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że najprościej byłoby utworzyć konkatenację tych trzech pól i wyszukać czy w ramach tego złączenia występują obydwa szukane wyrazy.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A jakiego silnik używasz do bazy? Jeśli MyISAM to masz coś takiego jak wyszukiwarka pełnotekstowa:
http://drzewo-wiedzy.pl/?page=artykul&...y_match_against. -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 2 Dołączył: 23.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Używam InnoDB ze względu na transakcje.
Zaraz sprawdzę concata ![]() Śmiga aż miło ![]() Dla potomnych: użyłem CONCAT_WS w WHERE ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.05.2025 - 03:23 |