Hirdetés

Új hozzászólás Aktív témák

  • csabyka666

    veterán

    válasz bambano #2175 üzenetére

    Próbáltam több módon is a LIKE-al, DISTINCT-el, de vagy az van, hogy én mondtam rosszul, amit el akarok érni, vagy valamit rosszul írtam a PHP-ban, vagy te értelmezted rosszul...a fene se tudja, a lényeg, hogy nem sikerült összehozni.

    Nem értem azt sem, hogy miért nem kell lefutnia többször a query-nek? Van 4 mezőm, amiben keresni akarok, és mindezt úgy, hogy minden egyes beírt szóra megnézem, hogy illeszkedik-e bármelyik mezőre is.
    Szóval beírom, hogy "ezt akarom megkeresni", és ebből - értelmezésem szerint - mindhárom szót meg kell néznem mind a 4 mezőn. (Tehát annyiszor futtatom a query-t, ahány szót megadok neki.)

    Azt már elértem, hogy csináltam egy tömböt, amibe beletettem mindegyik keresőszót, és ezen végigmentem, majd lefuttatom a query-t mindegyik szóra. Vissza is adja, hogy melyik indexeket találta meg (és ráadásul jót ad vissza), de ott akad meg a dolog, hogy ezeknek nem tudom a metszetüket venni. 99% hogy ez így működne, ha tömbökbe tudnám tenni a keresések eredményeit, mert azoknak tudom metszetüket venni.

    Ha van ennél egyszerűbb módszer, akkor szívesen meghallgatom azt is, de így most tanácstalan vagyok.

    A lényeg ugye az lenne, hogy csak azt a sort (esetleg sorokat) adja vissza a legvégén, amelyikre az összes beírt kifejezés passzol, vagyis a metszetüket.

    Tehát:
    ...WHERE
    mezo1 LIKE '%$keresokifejezes%' OR
    mezo2 LIKE '%$keresokifejezes%' OR
    mezo3 LIKE '%$keresokifejezes%' OR
    mezo4 LIKE '%$keresokifejezes%'
    ...és persze minden mezőt minden kifejezésre meg kellene vizsgálnom.

Új hozzászólás Aktív témák