Vì vậy, tôi ', gỡ lỗi một số mã và có truy vấn SQL sau đây (đơn giản hóa từ những gì nó thực sự là).Cách chọn từ vị trí x bằng nhiều giá trị?
SELECT ads.*, location.county
FROM ads
LEFT JOIN location ON location.county = ads.county_id
WHERE ads.published = 1
AND ads.type = 13
AND ads.county_id = 2
OR ads.county_id = 5
OR ads.county_id = 7
OR ads.county_id = 9
Tôi nhận được kết quả rất lạ từ truy vấn và tôi nghĩ kết quả của nó là vì OR đầu tiên phủ nhận AND trước đó. Vì vậy, tôi nhận được kết quả cho các quảng cáo thuộc mọi loại và không chỉ loại 13. Mỗi lần truy vấn được gọi là có thể có nhiều quận cần tìm kiếm hoặc chỉ một vài.
Bất kỳ trợ giúp nào về cách chính xác để thực hiện việc này đều sẽ được đánh giá cao.
Tôi nghĩ phiên bản IN dễ đọc hơn và ít có khả năng trả lại kết quả không mong muốn. – DOK
nó cũng *** đáng kể *** nhanh hơn, ít nhất là trên MySQL – warren
Trong trường hợp của tôi các giá trị trong 'IN' đến từ kết quả của một truy vấn chọn khác, làm cách nào để xử lý? –