Tôi có một bảng chứa một số cột và muốn kiểm tra giá trị cột, chọn các hàng sau giá trị cột đó cho đến khi giá trị cột riêng biệt xuất hiện. Tôi đã thử sử dụng BETWEEN
, nhưng nếu các giá trị cột là số nguyên thì nó chỉ tìm số giữa các số nguyên.
Ví dụ: nếu tôi có một bảng như thế này:
giá trị thời gian id t1 12:00 CH 15 t1 12:02 CH 4 t1 12:03 CH 7 t1 12:05 CH 16 t5 12:10 PM 250 t5 12:15 chiều 15 t8 11:00 sáng 15 t8 3:00 CH 2 t8 3:05 chiều 100 t2 7:00 tối 15 t2 7:01 16 t15 5:00 sáng 35
Tôi muốn lấy các hàng giữa các giá trị 15 và 16. Về cơ bản, nếu tôi có thể sắp xếp theo id
, sau đó time
, và tập hợp các hàng sau 15 xuất hiện cho đến khi có giá trị 16 trong cùng một giá trị id
. Nếu không có giá trị 16, tôi sẽ muốn 100 hàng tiếp theo chẳng hạn và sau đó tìm kiếm giá trị tiếp theo là 15.
Tôi muốn truy vấn để trả về điều này:
giá trị thời gian id t1 12:00 CH 15 t1 12:02 CH 4 t1 12:03 CH 7 t1 12:05 CH 16 t2 7:00 tối 15 t2 7:01 16 t5 12:15 chiều 15 t8 11:00 sáng 15 t8 3:00 CH 2 t8 3:05 chiều 100
Điều đó có thể gây nhầm lẫn. Tôi đã thử:
SELECT * FROM table WHERE value BETWEEN '15' AND '16' ORDER BY id, time
làm điểm bắt đầu, nhưng chỉ trả về các hàng có giá trị 15 hoặc 16 vì chúng là số nguyên.
Tôi muốn sắp xếp bảng theo id
sau đó time
. Các mục này được thêm tự động thông qua một hệ thống khác vì vậy tôi đang cố gắng truy vấn bảng cho các phạm vi giá trị cụ thể.
Có ý kiến gì không?
Làm rõ:
Nếu tôi có các hàng 15, 1, 16, 7, 15, 2, 16
giống nhau id
, tôi sẽ muốn cả hai "đảo" : 15, 1, 16, 15, 2, 16
.