MatzeA: MySQL + Perl + Suchabfrage

Beitrag lesen

Hi Christian,

das mit dem UND ist eine der gängigsten "Anfänger" Denkfehler.
Das was Du vermutlich mit Und meinst heisst in Wirklichkeit oder.

Nur als Beispiel: Wenn Du nach etwas suchst, dass beiden Kriterien entsprechen kann, dann wirst Du umgangsprachlich sagen:
Das muss dem und dem entsprechen.
Mathematisch jedoch heisst es richtig es muss dem oder dem entsprechen.

Mit dieser kleine exkursion komme ich nun zurück zu Deiner Frage.

Das muss nun wie folg heissen:

foreach (@suche) {
  $q = "SELECT * FROM tabelle WHERE name ?????";
}

$q = "SELECT * FROM tabelle WHERE name='suchbegriff1' or name='suchbegriff2'";

Mit dieser Abfrage bekommst Du nun alle Beiträge, die entweder dem suchbegriff1 oder suchbgriff2 entsprechen.
Wenn jedoch beide Kriterien erfüllt sein müssen, also Suchbegriff1 und Schbegriff2 enthalten sein muss, dann musst Du mit and anstatt or beide where Bedingungen verknüpfen.

Da ich nicht weiss was in dem Datenfeld steht, und dort eventuell nach einem Schlüsselwort gesucht wird, kannst Du auch folgendes versuchen.

$q = "SELECT * FROM tabelle WHERE name like '%suchbegriff1%' or name like '%suchbegriff2%'";

Dann wid alles gefunden, wo Dein Schlüsselwort bzw. Dein Suchbegriff enthalten ist.

Das ist dann sinnvoll, wenn Du z.B. nach BMW suchst und im Namen folgendes stünde.

MucBMWSoftlab
Autohaus BMW Bavaria

Gruss Matze