MATCH Problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #3
      @ case
      weil ich eine Volltextsuche machen möchte, die auch in mehreren Einträgen nach mehreren Suchbegriffen suchen kann.
      Last edited by thesilencer5; 15-03-2007, 15:06.

      Comment


      • #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.

        Comment


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

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

          Comment


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

            Comment


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

              Comment


              • #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.
                Last edited by thesilencer5; 15-03-2007, 15:18.

                Comment


                • #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.

                  Comment


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

                    Bringt aber auch ein leeres Ergebnis

                    Comment


                    • #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

                      Comment


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

                        Comment


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

                          Comment

                          Working...
                          X