Sagen wir, ich habe eine Tabelle, email_phone_notes
, die so aussieht:
+-----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| email | varchar | NO | PRI | NULL | |
| phone | varchar | NO | PRI | NULL | |
| notes | text | NO | | 0 | |
+-----------------------+--------------+------+-----+---------+-------+
Also ist jede Email-/Telefonkombination einzigartig, aber es könnten mehrere E-Mail-Adressen mit verschiedenen Telefonnummern oder umgekehrt vorhanden sein. Dies ist etwas konstruiert, spiegelt aber mein Szenario wider.
Ich möchte eine Abfrage wie diese durchführen:
SELECT * FROM email_phone_notes WHERE email = 'foo@bar.com' AND phone = '555-1212';
Aber ich möchte mehrere Paare auf einmal abfragen, damit ich nicht mehrere SELECT
-Abfragen machen muss. Es ist auch wichtig, die Paare zusammen zu behalten, damit ich keine versehentliche Telefon-/E-Mail-Kombination zurückgebe, die nicht angefordert wurde.
Ich könnte etwas wie das Folgende machen, aber für die Möglichkeit von mehreren hundert Werten wird die Abfrage sehr lang sein.
SELECT * FROM email_phone_notes WHERE (
(email='foo@bar.com' && phone='555-1212') ||
(email='test@test.com' && phone='888-1212') ||
...
Gibt es eine elegantere Lösung oder sollte ich dabei bleiben?