Nếu bạn theo đuổi SQL thanh lịch, bạn có thể sử dụng các hàm tạo hàng:
SELECT * FROM email_phone_notes WHERE (email, phone) IN (
('[email protected]' , '555-1212'),
('[email protected]', '888-1212')
-- etc.
);
Tuy nhiên, điều đó hoàn toàn không thân thiện với chỉ mục và sẽ không được đề xuất trên một bảng có kích thước đáng kể. Thay vào đó, bạn có thể hiện thực hóa một bảng với các cặp mong muốn và nối chúng với bảng của bạn:
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;
Hoặc điền trước một bảng (tạm thời):
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;