Datenbank: MYSQL • Version: 5.0.41 • Zugriff über: PHP
Abfrage / Where Klausel mehrere Werte
Hallo ich habe hier ein kleines Problem mit einer Abfrage.
Und zwar programmiere ich ein kleines Backend System mit internen Mailversand, usw. Wenn jertzt Mails versand werden, kann man mehr als einen Benutzer angeben, an den die Mail verschickt werden soll. Nun habe ich eine Liste mit Benutzernamen oder Namen und möchte mittels einer Abfrage nun alle IDs herausfinden. Meine Tabelle besitzt unter anderem: ID (Int), Username (VARCHAR (50)) und Name (VARCHAR (50)) Meine bisherige Abfrage sieht bis jetzt so aus:
SQL-Code:
Diese Abfrage liefert mir somit immer nur ein Ergebnis.
SELECT ID FROM backend_login WHERE ((Username = 'Marco') OR (Name = 'Marco')) OR ((Username = 'Moritz') OR (Name = 'Moritz')) OR ((Username = 'Tobi') OR (Name = 'Tobi'))
Ich möchte aber alle IDs zu den Namen bzw. Usernamen haben, die ich in der Where Klausel eingefügt habe. Ich glaube vor einiger Zeit einmal etwas genau zu dieser Situation gelesen zu haben, aber kenn mich nicht mehr erinner wo, geschweige denn wonach ich nun genau suchen soll. Wie muss die WHERE Klausel für den angesprochenen Sachverhalt aussehen? LG Marco |
Re: Abfrage / Where Klausel mehrere Werte
Vielleicht so...
SQL-Code:
SELECT ID
FROM backend_login WHERE (Username = 'Marco' AND Name = 'Marco') OR (Username = 'Moritz' AND Name = 'Moritz') OR (Username = 'Tobi' AND Name = 'Tobi') |
Re: Abfrage / Where Klausel mehrere Werte
Grundsätzlich genau so, wenn auch die ganzen Klammern nicht unbedingt nötig sind.
Es könnte aber an Leerzeichen liegen. Trimme mal die Felder |
Re: Abfrage / Where Klausel mehrere Werte
Es ist wahrscheinlich nur Geschmackssache, aber ich würde das eher so formulieren:
SQL-Code:
SELECT
ID FROM backend_login WHERE Username IN ('Marco', 'Moritz', 'Tobi') OR Name IN ('Marco', 'Moritz', 'Tobi') |
Re: Abfrage / Where Klausel mehrere Werte
Oder
SQL-Code:
SELECT
ID FROM backend_login WHERE Trim(Username) IN ('Marco', 'Moritz', 'Tobi') OR Trim(Name) IN ('Marco', 'Moritz', 'Tobi') |
Re: Abfrage / Where Klausel mehrere Werte
Zitat:
Nochmal zur Erklärung: 1. Name und Username sind unterschiedlich, deshalb da auch "OR" 2. An leerzeichen liegt es nicht, diese habe ich vorher so bearbeitet, dass auch das richtige gefunden werden muss.
SQL-Code:
Es sollte dann eine Liste mit genau zwei Ergebnissen (1,2) geliefert werden bei der Abfrage.
SELECT ID FROM backend_login WHERE ((Username = 'Marco') OR (Name = 'Marco')) OR ((Username = 'Moritz') OR (Name = 'Moritz')) OR ((Username = 'Tobi') OR (Name = 'Tobi'))
[EDIT] Vielen Dank, genau das wars was ich meinte und gesucht habe:
SQL-Code:
SELECT
ID FROM backend_login WHERE Username IN ('Marco', 'Moritz', 'Tobi') OR Name IN ('Marco', 'Moritz', 'Tobi') LG Marco |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz