Zum Inhalt springen

mit SQL in Tabelle suchen


Nausi

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.
Link zu diesem Kommentar
Auf anderen Seiten teilen

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;

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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