Micha: Unscharfe Suche

Hi,
wie schaffe ich es bei einer Datenbankabfrage eine unscharfe Suche zu machen ? D.h. wenn ich nach "Timy" suche soll er mir aber auch "Timmy" oder "Tommy" rauswerfen. Verstanden ?

Ich arbeite mit mySQL, gibt es dort schon eine Funktion die das erledigt oder muss man das selbst machen. Kann mir jemand da weiterhelfen ?

Micha

  1. mysql> SELECT Name, Telefon
        -> FROM Mitarbeiter
        -> WHERE Telefon LIKE '%96/%';
    +-------+--------------+
    | Name  | Telefon      |
    +-------+--------------+
    | Maier | 06196/671797 |
    +-------+--------------+
    1 row in set (0.00 sec)

    gern geschehen! ;-)

    1. Hallo,
      nun ja, er meinte, dass Timy, Timmy u.s.w. bei Tippfehlern
      gefunden werden sollte.
      Mit Deiner Methode wuerde er aber auch "my oh my" ;-) finden...

      Vielleicht gibbet ja noch ne andere Loesung?
      Gruss Mi

      1. Experimentiere mal mit: SOUNDEX(str)

        Lege also eine Spalte mit für soundex an (TinyText)

        dann update tablle set sound_vname = soundex(vname);

        select vname from tabelle where sound_vname like  LEFT(soundex('Timy'),4)%;

        Ich selber habe damit noch nichts gemacht, es wäre einen Versuch wert.

        Berichte mal über die Resultate.

        fastix

        1. select vname from tabelle where sound_vname like  right(soundex('Timy'),X)%;

          (X=1-n)

          Du brauchst die rechten (ersten) Zeichen, nicht die linken (letzten).

          soundex(Jimmy)
          soundex(Jimy)
          soundex(Jimmi)
          soundex(jmi)

          soundex ist bei allen J500 - Würde Dir das genügen?

          fastix

          1. soundex ist bei allen J500 - Würde Dir das genügen?

            fastix

            Hi,
            mir genuegt es. Dankeschoen!
            Doch ob es der Person, die diesen
            Thread eroeffnet hat, genuegt - das
            kann ich Dir nicht beantworten.
            Gruss Mi

  2. Hi Micha,

    wie schaffe ich es bei einer Datenbankabfrage eine unscharfe Suche zu machen ? D.h. wenn ich nach "Timy" suche soll er mir aber auch "Timmy" oder "Tommy" rauswerfen. Verstanden ?

    nein. Ein Beispiel ist keine Aufgabenstellung.

    Es gibt den LIKE-Operator, der Dir erlaubt, nach variablen Zeichenketten zu suchen.

    Aber eine Logik, die _errät_, was Du _vielleicht_ gemeint haben _könntest_, existiert nicht (und zwar grundsätzlich nicht, unabhängig von dem verwendeten RDBMS).

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    1. Hallo Michael,

      Aber eine Logik, die _errät_, was Du _vielleicht_ gemeint haben _könntest_, existiert nicht...

      da muß ich Dir widersprechen. Die Rendering-Engine im Internet Explorer hat so eine Logik...

      SChöNen gRuß

      Rainer

      1. Hi Rainer S.,

        Aber eine Logik, die _errät_, was Du _vielleicht_ gemeint haben _könntest_, existiert nicht...
        da muß ich Dir widersprechen. Die Rendering-Engine im Internet Explorer hat so eine Logik...

        das ist so aber nicht vergleichbar. Wenn der M$IE falsch rät, dann ist das Ergebnis immer noch "so halbwegs brauchbar"; wenn eine Suchmaschine falsch rät, dann ist das Ergebnis einfach falsch.

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.