Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo alle zusammen,

ich möchte in meiner Tabelle gerne hergehen und nach einem Namen suchen. Also so:

select name, vorname from Tabelle

where name = 'Nausi'

wenn ich mit like arbeite dann bekomme ich auch den Datensatz zurück wenn 'nausi' eingegeben wurde.

Gibt es denn auch ne Möglichkeit das wenn nur 'naus' eingegeben wurde den Datensatz 'Nausi' zurückzubekommen.

Oder wie ist das mit Maier, ich möchte gerne das wenn nach Maier gesucht wird auch Mayer, Meier usw ausgegeben wird, gibts da ne besondere Möglichkeit?

Dank euch

eure Nausi

Geschrieben
Original geschrieben von Nausi

wenn ich mit like arbeite dann bekomme ich auch den Datensatz zurück wenn 'nausi' eingegeben wurde.

Gibt es denn auch ne Möglichkeit das wenn nur 'naus' eingegeben wurde den Datensatz 'Nausi' zurückzubekommen.

Du könntest es mit "in" versuchen. Also

where name in('naus', 'nausi',...)

Dann bringt er Dir aber alle Datensätze, in denen "naus" oder "nausi" steht.

Ich weiss nicht, ob ich Deine Frage so richtig verstanden habe... :rolleyes:

Ach so: Bei Mayer,Meier,Maier kannst Du doch einfach

like 'M%er'
sagen, dann bringt er eh alle.
Geschrieben
Original geschrieben von Nausi

Gibt es denn auch ne Möglichkeit das wenn nur 'naus' eingegeben wurde den Datensatz 'Nausi' zurückzubekommen.

Hmmm...

Wie hast du denn mit "like" gearbeitet, wenn er auch den Satz "nausi" gefunden hat? Welche DB verwendest du denn?

Bei Oracle würde der Satz so nicht gefunden werden, da müsste man explizit in lowercase umwandeln, nämlich so:

select vorname, name

from tabelle

where lower(name) like '%naus%';
So findest du alle Sätze unabhängig von Groß-/Kleinschreibung, die irgendwo im Namen den Text "naus" enthalten, also auch z.B. "Knauser".
Oder wie ist das mit Maier, ich möchte gerne das wenn nach Maier gesucht wird auch Mayer, Meier usw ausgegeben wird, gibts da ne besondere Möglichkeit?
Hierbei handelt es sich um eine sog. phonetische Suche. Oracle unterstützt so etwas auch. Allerdings muss dafür meines Wissens nach die Intermedia Text Cartridge installiert und die Spalte auch indiziert sein. Ein entsprechender Aufruf sieht folgendermaßen aus:
select vorname, name

from tabelle

where contains(name, '?meyer') > 0;

Geschrieben

Einige Datenbanken unterstützen die Funktion SOUNDEX.

Der Syntax ist z.B. bei Oracle folgendermaßen:


 select name from tPersonen where soundex(Name)=soundex('Meyer');


NAME

-------

Meyer

Mayer

Maier

Purpose

SOUNDEX returns a character string containing the phonetic representation of char. This function lets you compare words that are spelled differently, but sound alike in English.

Da brauch man kein Intermedia Text.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...