MATCH Problem

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

  • MATCH Problem

    Hi,

    ich habe ein Problem mit MATCH und finde keine Lösung. Ich suche in einer Tabelle nach bestimmten Keywords.
    Wenn ich z.B. nach "Super" suche, sollen auch alle Einträge mit "superdoll", "Superduper" etc ausgegeben werden.

    Ich dachte, hinter den Suchbegriff müsste hierzu ein * eingetragen werden, es funktioniert aber nicht. Hier meine Abfrage:
    PHP-Code:
    $query_listing3 "SELECT * FROM main_data WHERE MATCH(keywords) AGAINST('$suchen*')"
    Es werden immer nur Einträge ausgegeben, bei denen $suchen genau mit einem der Keywords übereinstimmt.
    Wo liegt hier der Fehler?
    Danke im Voraus

  • #2
    Warum versuchst du es nciht mal mit einem

    PHP-Code:
     $query_listing3 "SELECT * FROM main_data WHERE keywords LIKE '$suchen%'"
    signed oder unsigned... das ist hier die Frage

    Kommentar


    • #3
      @ case
      weil ich eine Volltextsuche machen möchte, die auch in mehreren Einträgen nach mehreren Suchbegriffen suchen kann.
      Zuletzt geändert von thesilencer5; 15.03.2007, 15:06.

      Kommentar


      • #4
        Re: MATCH Problem

        Original geschrieben von thesilencer5
        Wenn ich z.B. nach "Super" suche, sollen auch alle Einträge mit "superdoll", "Superduper" etc ausgegeben werden.

        Ich dachte, hinter den Suchbegriff müsste hierzu ein * eingetragen werden, es funktioniert aber nicht.
        Dann musst du eine Volltextsuche IN BOOLEAN MODE nutzen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ich denke mal, dass er nicht umsonst die volltextsuche verwendet, oder doch?

          http://dev.mysql.com/doc/refman/5.1/...t-boolean.html

          Kommentar


          • #6
            Mit Boolean Mode ändert sich auch nichts.
            Laut MySQL Handbuch dient doch ein * als Platzhalter. Warum macht er nicht was er soll?

            Kommentar


            • #7
              Dann zeig mal die query und nicht den generierenden php-code.

              Kommentar


              • #8
                Query:
                SELECT * FROM main_data WHERE MATCH(keywords) AGAINST('superdu*')

                Müsste zumindest den Eintrag mit dem Keyword "superduper" bringen, liefert aber ein leeres Ergebnis.
                Zuletzt geändert von thesilencer5; 15.03.2007, 15:18.

                Kommentar


                • #9
                  Original geschrieben von thesilencer5
                  Query:
                  SELECT * FROM main_data WHERE MATCH(keywords) AGAINST('superdu*')
                  Und wo sagst du da, dass du den Boolean Mode verwenden möchtest?


                  Hast du zu dem Stichwort überhaupt mal nachgelesen?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    @ wahsaga
                    SELECT * FROM main_data WHERE MATCH(keywords) AGAINST('superdu*' IN BOOLEAN MODE)

                    Bringt aber auch ein leeres Ergebnis

                    Kommentar


                    • #11
                      Kann es sein dass die Suche einfach Case Sensitive ist??


                      also das mit

                      SELECT * FROM main_data WHERE MATCH(keywords) AGAINST('superdu*')
                      zwar superduper aber nicht Superduper gerunden wird ?
                      signed oder unsigned... das ist hier die Frage

                      Kommentar


                      • #12
                        @case
                        Nein, ist nicht case sensitive...

                        Kommentar


                        • #13
                          Kann das irgendwie an der Tabelle liegen, oder der MySQL Version?
                          Ich habe die 4.1.14 laufen.

                          Kommentar

                          Lädt...
                          X