Tôi có truy vấn:Mysql ở đâu ... Trong ... VÀ nơi ... trong ... nên chỉ phù hợp trên cùng một chỉ số
SELECT * FROM `users`
WHERE (`firstname` LIKE 'Luke' AND `lastname` LIKE 'Skywalker') OR
(`firstname` LIKE 'Foo' AND `lastname` LIKE 'Bar') OR
(`firstname` LIKE 'Tom' AND `lastname` LIKE 'Turner');
Nhưng tôi muốn làm cho nó dễ đọc hơn một chút bằng cách sử dụng một nơi ... trong ... tôi đã cố gắng
SELECT * FROM users
WHERE `firstname`
IN ('Luke','Foo','Tom') AND `lastname` IN ('Skywalker','Bar','Turner');
Nhưng tiếc là điều này cũng sẽ phù hợp với "Tom Skywalker"
, "Foo Turner"
và tất cả trộn bạn có thể nghĩ ra.
Tôi phải chọn tên và họ (có lẽ nhiều trường như DOB) vì tôi đang nhận dữ liệu từ API bên ngoài và tôi phải kiểm tra xem các tên đó có nằm trong hệ thống của chúng tôi hay không.
Tỷ lệ dữ liệu trong bảng 'người dùng' của bạn là gì và số hàng từ API bên ngoài mà bạn sẽ phải so sánh? 100 hàng? 50.000 hàng? – mellamokb
Tôi có thể nhận được tối đa 1000 tên từ API bên ngoài (Tôi muốn kết hợp bạn bè trên facebook với người dùng từ cơ sở dữ liệu của riêng mình) cơ sở dữ liệu của riêng tôi có thể nhận được tối đa 10000 hàng (hiện đang trong giai đoạn thử nghiệm, nhưng tôi muốn tối ưu hóa tất cả các truy vấn sql của tôi ở giai đoạn đầu) – Werring