假设我有一张桌子,email_phone_notes
看起来像这样:
+-----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| email | varchar | NO | PRI | NULL | |
| phone | varchar | NO | PRI | NULL | |
| notes | text | NO | | 0 | |
+-----------------------+--------------+------+-----+---------+-------+
因此,每个电子邮件/电话组合都是唯一的,但您可以拥有多个具有不同电话号码的电子邮件地址,反之亦然。这有点做作,但它反映了我的情况。
我想做这样的查询:
SELECT * FROM email_phone_notes WHERE email = 'foo@bar.com' AND phone = '555-1212';
但是,我想一次做多对,所以我不必做几个SELECT
查询。将这对组合在一起也很重要,因为我不想退回未要求的错误电话/电子邮件组合。
我可以做这样的事情,但是对于几百个值的可能性,查询会很长。
SELECT * FROM email_phone_notes WHERE (
(email='foo@bar.com' && phone='555-1212') ||
(email='test@test.com' && phone='888-1212') ||
...
有没有更优雅的解决方案,或者我应该坚持这个?谢谢!