Om du är ute efter elegant SQL kan du använda radkonstruktörer:
SELECT * FROM email_phone_notes WHERE (email, phone) IN (
('[email protected]' , '555-1212'),
('[email protected]', '888-1212')
-- etc.
);
Det är dock inte alls indexvänligt och skulle inte rekommenderas på ett bord av någon större storlek. Istället kan du skapa ett bord med dina önskade par och slå ihop det med ditt bord:
SELECT * FROM email_phone_notes NATURAL JOIN (
SELECT '[email protected]' AS email, '555-1212' AS phone
UNION ALL
SELECT '[email protected]', '888-1212'
-- etc.
) t;
Eller fyll i en (tillfällig) tabell i förväg:
CREATE TEMPORARY TABLE foo (PRIMARY KEY (email, phone)) Engine=MEMORY
SELECT email, phone FROM email_phone_notes WHERE FALSE
;
INSERT INTO foo
(email, phone)
VALUES
('[email protected]' , '555-1212'),
('[email protected]', '888-1212')
-- etc.
;
SELECT * FROM email_phone_notes NATURAL JOIN foo;