Als u op zoek bent naar elegante SQL, kunt u rijconstructors gebruiken:
SELECT * FROM email_phone_notes WHERE (email, phone) IN (
('[email protected]' , '555-1212'),
('[email protected]', '888-1212')
-- etc.
);
Dat is echter helemaal niet index-vriendelijk en zou niet worden aanbevolen op een tafel van enige significante omvang. In plaats daarvan zou je een tafel kunnen materialiseren met je gewenste paren en die samenvoegen met je tafel:
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;
Of vul vooraf een (tijdelijke) tabel in:
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;