mabu: überprüfen, ob bereits vorhanden

Hi!

Ich habe eine Datenbank in einer so ähnlichen Struktur wie

| Vorname    | Nachname
--------------------------------------
Zeile 1   | max        | mustermann
Zeile 2   | toni       | muster

Ich möchte nun überprüfen, ob ein bestimmter sting schon irgendwo in der spalte "Nachname" vorhanden ist.

Geht das mit einer einfachen Search-Funktion? Ich kenn mich mit MySQL sowieso nicht so gut aus...

mfg,
mabu

  1. Halihallo mabu

    Ich habe eine Datenbank in einer so ähnlichen Struktur wie

    | Vorname    | Nachname

    Zeile 1   | max        | mustermann
    Zeile 2   | toni       | muster

    Ich möchte nun überprüfen, ob ein bestimmter sting schon irgendwo in der spalte "Nachname" vorhanden ist.

    Geht das mit einer einfachen Search-Funktion? Ich kenn mich mit MySQL sowieso nicht so gut aus...

    Was ist eine Search-Funktion? - SELECT meinst du? - Ja:

    SELECT Nachname FROM Tabelle WHERE Nachname="den, den du überprüfen willst"

    liest du anschliessend aus der Datenbank-Response (Antwort der DB, also die auf die Suchkriterien passenden Datensätze) den Wert für Nachname aus, kriegst du bei nichtexistierendem die "Resultset"-Länge 0 oder bei existierendem genau den Nachnamen bzw. eine Länge der selektierten Antworten grösser 0. Also:

    $result = 'SELECT Nachname FROM Tabelle WHERE Nachname="mabu"'

    if ($result = 'mabu') {
       Ja, ich existiere bereits!
    } else {
       Nein, ich existiere nicht!
    }

    *pseudo-programming!* ;)

    Arbeitest du mit einer Programmiersprache nehm ich an? - Wenn ja, mit welcher?

    Viele Grüsse

    Philipp

    1. Halihallo mabu

      Ich habe eine Datenbank in einer so ähnlichen Struktur wie

      | Vorname    | Nachname

      Zeile 1   | max        | mustermann
      Zeile 2   | toni       | muster

      Ich möchte nun überprüfen, ob ein bestimmter sting schon irgendwo in der spalte "Nachname" vorhanden ist.

      Geht das mit einer einfachen Search-Funktion? Ich kenn mich mit MySQL sowieso nicht so gut aus...

      Was ist eine Search-Funktion? - SELECT meinst du? - Ja:

      SELECT Nachname FROM Tabelle WHERE Nachname="den, den du überprüfen willst"

      liest du anschliessend aus der Datenbank-Response (Antwort der DB, also die auf die Suchkriterien passenden Datensätze) den Wert für Nachname aus, kriegst du bei nichtexistierendem die "Resultset"-Länge 0 oder bei existierendem genau den Nachnamen bzw. eine Länge der selektierten Antworten grösser 0. Also:

      $result = 'SELECT Nachname FROM Tabelle WHERE Nachname="mabu"'

      if ($result = 'mabu') {
         Ja, ich existiere bereits!
      } else {
         Nein, ich existiere nicht!
      }

      *pseudo-programming!* ;)

      Arbeitest du mit einer Programmiersprache nehm ich an? - Wenn ja, mit welcher?

      Viele Grüsse

      Philipp

      Naja, damit kannst du nur nach einem exakten namen suchen.
      Der richtige SQL-Ausdruck währe wohl:
      SELECT * FROM tabelle WHERE Nachname LIKE '%suchstring%';

      Wobei die %-Zeichen als Pltzhalt fungieren und so auch
      "mustermann" als ergebiss geliefert wird, wenn du nach "muster" suchst.

      Andi

      1. Naja, damit kannst du nur nach einem exakten namen suchen.
        Der richtige SQL-Ausdruck währe wohl:
        SELECT * FROM tabelle WHERE Nachname LIKE '%suchstring%';

        Bzw. bei case-sensitiven DB's (Oracle etc.) dann

        SELECT Count(*) AS howmany FROM tabelle
        WHERE lower(nachname) LIKE lower('%suchstring%');

        Nur den Count(*) zu holen empfiehlt sich sehr, denn wenn die Tabelle 2 Millionen Einträge hat und der Suchstring = "a" ist, holt man ne Unmenge Daten über die Verbindung, obwohl eine Zahl (=1-2 Bytes) reichen würde...