Ankündigung

Einklappen
Keine Ankündigung bisher.

Einzeltreffer von MATCH ... AGAINST ... ermitteln

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Einzeltreffer von MATCH ... AGAINST ... ermitteln

    Hi zusammen!

    Ich möchte gerne die Anzahl der einzelnen Treffer einer MATCH ... AGAINST ... Volltextsuche pro Datensatz ermitteln. Dabei geht es mir nicht nur um die Anzahl der gefundenen Datensätze selbst (das zu ermitteln ist ja kein Kuststück), sonder, und dass ist das wo ich nicht weiter komme, ich möchte genau wissen wieviele Treffer eine MATCH ... AGAINST ... Abfrage in allen Datensätzen ermittelt hat.

    Zur Verdeutlichung:

    Tabelle "foobar":
    Code:
    --------------------------------
    | foo |           bar          |
    --------------------------------
    |   1 | Beipiel Datensatz      |
    |   2 | Ein weiterer Datensatz |
    |   3 | Noch einer             |
    |   4 | Mehr, mehr, mehr ...   |
    --------------------------------
    Abfrage:

    Code:
    SELECT
      `foo`
    FROM
      `foobar`
    WHERE
      MATCH(`bar`) AGAINST(
        'datensatz mehr'
        IN BOOLEAN MODE
      )
    Liefert:

    -> `foo`: 1
    -> `foo`: 2
    -> `foo`: 4

    Ich möchte aber auch wissen, das 5 Treffer in den gefundenen Datensätzen enthalten sind.

    Kann mir da vielleicht einer einen hilfreichen Tip geben? Mit dem MySQL-Handbuch komme ich da nicht weit. Ich denke mal das muss eine eigene Prozedur her, oder?

    Vielen Dank für Eure Hilfe!


    LG proud

  • #2
    Hallo proud,

    du kannst hier mit COUNT() arbeiten. Ein Konstrukt der Art

    Code:
    SELECT
      `foo`, COUNT(bar) as count
    FROM
      `foobar`
    WHERE
      MATCH(`bar`) AGAINST(
        'datensatz mehr'
        IN BOOLEAN MODE
      )
    zeigt dir die Anzahl der Treffer. Eine andere Möglichkeit ist die PHP-Funktion mysql_num_rows().

    Kommentar


    • #3
      Hi dr.e.!

      Danke für die nette Antwort!
      Leider ist dass nur nicht das was ich gefragt habe
      Die Anzahl der gefundenen Datensätze zu ermitteln ist ja kein Thema, aber die Anzahl aller Treffer innerhalb eines Datensatzes sehr wohl.
      Wie Du anhand des obigen Beispiels sehen kannst, möchte ich nicht 3 als Ergebnis, sondern 5.


      LG proud

      Kommentar


      • #4
        Hallo proud,

        mit deiner Beispiel-Query wirst du aber nur 3 Ergebnisse bekommen. Möchtest du die Einzelergebnisse (ich verstehe noch nicht ganz wie du diese gruppieren / kategorisieren willst) musst du die Query umschreiben. Mit einem Teil fragst du die Ergebnisse einer Kategorie und die Treffer ab, mit dem äußeren Teil stellst du das Ergebnis bereit.

        Kommentar

        Lädt...
        X