steve mtangoo wrote:
> 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

Yes, don't use :1. Just use the number 1.

SELECT *
FROM Bible
WHERE (
     book > 1 OR ... and so on
)

>
> 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



-- 
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

Reply via email to