[Zope-dev] ZSQL using LIKE operator

Schmidt, Allen J. aschmidt@nv.cc.va.us
Thu, 8 Feb 2001 11:34:08 -0500


Yup...You're right. I found an item that had a single quote in it. I tried
it and the query blew up. then I added parts you suggest, and bingo...works
fine.

Thanks!

To get around another problem I noticed...
I have a keywords text field to search through everything in every category.
On the same page, I have links which pass on the category number to the ZSQL
method.
The keywords FORM uses a hidden category field which I set to =""  -- worked
fine.
But if I used the URL to jump right to the category listings, there was no
keyword to pass.
I just set an empty property named 'keywords' and then if the URL search is
used, keywords has a 'value'. 
I am sure there is a more elegant way to do this..but it works fine.

Thanks again guys!

Allen

-----Original Message-----
From: Casey Duncan [mailto:cduncan@kaivo.com]
Sent: Thursday, February 08, 2001 11:11 AM
To: Jens Vagelpohl
Cc: Schmidt, Allen J.; zope-dev@zope.org
Subject: Re: [Zope-dev] ZSQL using LIKE operator


Jens Vagelpohl wrote:
> 
> just write it out like:
> 
> SELECT * FROM table WHERE keywords LIKE '%<dtml-var name="my_var">%'
> 
> jens
> 
> on 2/8/01 7:17, Schmidt, Allen J. at aschmidt@nv.cc.va.us wrote:
> 
> > I have been through the docs, searched a variety of locations, and
cannot
> > find anything on how to resolve a query which I need to read:
> >
> > SELECT * FROM table WHERE keywords LIKE '%keywords_variable%'
> >
> > <dtml-sqltest> has 'op=like' and when set to 'type=string' produces the
LIKE
> > operation in the query, with single quotes,  but I cannot get it to
'wrap'
> > the keywords with the percent characters and THEN the single quotes to
> > produce that which I have in the query above.
> >
> > Ideally what I need to produce would be the query to search through some
> > text in several fields by the keyword_variable (IF any keywords are
> > provided) AND/OR within  a specific category of information. If I can
get
> > the syntax to solve the above situation I think I can get
<dtml-sqlgroup> to
> > sort out what information is provided and construct the query
accordingly.
> >
> > Sorry for the length of this newbie question but I am stumped on this
one.
> > And, so ends my lurking status.
> >
> > Thanks!
> > Allen
> >

SELECT * FROM table WHERE keywords LIKE '%<dtml-var name="my_var"
sql_quote>%'

would be a safer bet. Otherwise a value of my_var with a single quote in
it wouldn't work.
-- 
| Casey Duncan
| Kaivo, Inc.
| cduncan@kaivo.com
`------------------>