mySQL select IN range


84

Có thể xác định một phạm vi cho phần IN của truy vấn không, giống như thế này

SELECT job FROM mytable WHERE id IN (10..15);

Thay vì

SELECT job FROM mytable WHERE id IN (10,11,12,13,14,15);

Câu trả lời:


153

Bạn không thể, nhưng bạn có thể sử dụng BETWEEN

SELECT job FROM mytable WHERE id BETWEEN 10 AND 15

Lưu ý rằng điều đó BETWEENlà bao gồm và sẽ bao gồm các mục có cả id 10 và 15.

Nếu bạn không muốn đưa vào, bạn sẽ phải quay lại sử dụng toán tử ><.

SELECT job FROM mytable WHERE id > 10 AND id < 15

1
tôi nên làm gì nếu tôi muốn truy vấn 5 mục đầu tiên trong bảng của mình? ví dụ các id là 1,2,5,6,7,8. Trong trường hợp này, phương pháp trên sẽ chỉ trả về 1,2,5.
Soroosh

1
Không chắc chắn những gì bạn có ý nghĩa. Tôi đề nghị viết một câu hỏi mới với nhiều chi tiết hơn.
ESG

6

Để chọn dữ liệu trong phạm vi số, bạn có thể sử dụng phạm vi BETWEENbao gồm.

SELECT JOB FROM MYTABLE WHERE ID BETWEEN 10 AND 15;

Câu trả lời của ESG có gì khác biệt?
Torsten

2
Bản sao spam ngoại trừ cái này là một phương pháp không tốt khi đặt cột và bảng ở dạng chữ hoa. Tên cột không phân biệt chữ hoa chữ thường nên không sao cả (như trong, sẽ không tạo ra lỗi), nhưng tên bảng phân biệt chữ hoa chữ thường trong hầu hết các hệ thống Unix. (Nhưng trên Windows tên bảng cũng không phân biệt chữ hoa chữ thường nên truy vấn này sẽ thành công ở đó) ... Nói chung, đó là một kế hoạch tốt để không khiến mọi người nhầm lẫn với việc chơi chữ hoa không cần thiết. Làm thế nào điều này được ủng hộ sau khi câu trả lời của ESG nằm ngoài tôi.
jeroen e
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.