select * from Bible where (book > :1 or (book=:1 and (chapter>:1 or
(chapter=:1 and verse>=:1) and (book < :3 or (book=:3 and (chapter<:1 or
(chapter=:1 and verse<=:1);
Does not work. Is there any issue

On Mon, Dec 13, 2010 at 6:11 PM, Puneet Kishor <punk.k...@gmail.com> wrote:

>
>
> steve mtangoo wrote:
> > Hi Igor,
> > would you explain what are bookLow and chapterHigh?
> > Do you mean lowest book and highest chapter?
>
> :bookLow and :chapterHigh are place holders for numbers you will
> provide. Those numbers stand for the lowest numbered book and the
> highest numbered chapter between which you want to search.
>
>
> >
> > I want to test this query but please help me to understand it.
> > select * from Bible where
> > (book>  :bookLow or (book=:bookLow and (chapter>:chapterLow or
> > (chapter=:chapterLow and verse>=:verseLow)
> > and
> > (book<  :bookHigh or (book=:bookHigh and (chapter<:chapterHigh or
> > (chapter=:chapterHigh and verse<=:verseHigh);
> >
> > And thanks to everybody who is helping here!
> >
> > On Mon, Dec 13, 2010 at 5:13 PM, Igor Tandetnik<itandet...@mvps.org>
>  wrote:
> >
> >> steve mtangoo<mwinjili...@gmail.com>  wrote:
> >>> I have a  script that is supposed to query the Bible scriptures between
> >> two
> >>> intervals. My table is named Bible and have columns: ID (int), Book
> >> (int),
> >>> Chapter(int), Verse (int) and Scripture(text).
> >>>
> >>> Now the books are unique i.e. 1-66 but chapters keep repeating, and so
> do
> >>> verses. Now suppose I want to get scripture between book 1 chapter 1
> >> verse 1
> >>> and book 2 chapter 3 Verse 1, how do I go about? My knowledge of
> SQLite3
> >>> have taken me to a dead end!
> >> Here's a straighforward answer:
> >>
> >> select * from Bible where
> >> (book>  :bookLow or (book=:bookLow and (chapter>:chapterLow or
> >> (chapter=:chapterLow and verse>=:verseLow)
> >> and
> >> (book<  :bookHigh or (book=:bookHigh and (chapter<:chapterHigh or
> >> (chapter=:chapterHigh and verse<=:verseHigh);
> >>
> >> Here's a trick to make it shorter:
> >>
> >> select * from Bible where
> >> book*1000000 + chapter*1000 + verse between
> >>     :bookLow*1000000 + :chapterLow*1000 + :verseLow
> >> and
> >>     :bookHigh*1000000 + :chapterHigh*1000 + :verseHigh;
> >>
> >> Basically, the idea is to assign each verse a unique number (the query
> >> above assumes there are no more than 1000 verses per chapter and
> chapters
> >> per book; adjust multipliers if there are more). You may want to
> consider
> >> working with such sequential numbers internally in your program,
> converting
> >> between them and (book, chapter, verse) format on input/output only. So,
> >> define your table as Bible(VerseNumber integer primary key, Scripture
> text),
> >> and the query becomes simply
> >>
> >> select * from Bible where VerseNumber between :VerseLow and :VerseHigh;
> >>
> >> --
> >> Igor Tandetnik
> >>
> >> _______________________________________________
> >> sqlite-users mailing list
> >> sqlite-users@sqlite.org
> >> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> >>
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@sqlite.org
> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
>
>
> --
> Puneet Kishor http://punkish.org
> Carbon Model http://carbonmodel.org
> Charter Member, Open Source Geospatial Foundation http://www.osgeo.org
> Science Fellow
> http://creativecommons.org/about/people/fellows#puneetkishor
> Nelson Institute, UW-Madison http://www.nelson.wisc.edu
> ---------------------------------------------------------------------------
> Assertions are politics; backing up assertions with evidence is science
> ===========================================================================
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to