> Le 26 oct. 2018 à 09:27, siscia <sisciamir...@yahoo.com> a écrit : > > thanks for your suggestions, unfortunately, I already tried all of them, > except for the rtrees. > > Actually, my request for help wasn't complete. > > The ranges I am storing in the table are not overlapping. > > To make an example in SQL. > > The following can be in the dataset: > INSERT INTO ranges(1, 10, 5); > INSERT INTO ranges(15, 29, 8); > INSERT INTO ranges(30, 32, 9); > > However, there will never be something like: > INSERT INTO ranges(1, 10, 5); > INSERT INTO ranges(5, 15, 8); -- impossible, overlap with the first one
What if the data was structured differently? > CREATE TABLE ranges ( > start int, > end int, > value int, > ); becomes: CREATE TABLE ranges ( start int, range int, -- on the basis that start + range = end value int, ); > INSERT INTO ranges(1, 10, 5); > INSERT INTO ranges(15, 29, 8); > INSERT INTO ranges(30, 32, 9); becomes: INSERT INTO ranges(1, 9, 5); INSERT INTO ranges(15, 14, 8); INSERT INTO ranges(30, 2, 9); and you have: CREATE INDEX idx_ranges on ranges(start); > select value from ranges > where (? between start and end) becomes: SELECT value FROM ranges where (? between start AND start+range); -- Best Regards, Meilleures salutations, Met vriendelijke groeten, Olivier Mascia _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users