BETWEEN has no limitations, (are you sure you retreive all rows, and not accedently forget to fetch those near 100?) but one nasty 'gotcha'; BETWEEN does not always literally mean 'BETWEEN' as in
BETWEEN 1 AND 5 would suggesnt dant only 2,3, and 4 are valid, because they are truly between 1 and 5. This is not always the case.
You could also try:
WHERE price >= 1 AND price <=100
which is effectively the same, but now you can be sure that 1 and 100 also count.