using like and % in MySQLdb

Chris bit_bucket5 at hotmail.com
Thu Aug 7 17:07:08 CEST 2003


Dave Harrison <dave at nullcube.com> wrote in message news:<mailman.1060232532.23485.python-list at python.org>...
> Im sure this is a really obvious problem but :
> 
> self.curs.execute(
>         """SELECT * FROM user WHERE login LIKE '%%s%'""", [login]
>         )
> 
> will not work ... gives me an "unsupported format character ''' (0x27)"
> 
> escaping the %'s with % as the doco recommends wont work either.
> 
> however this :
> 
> self.curs.execute(
>         """SELECT * FROM user WHERE login LIKE '%dave%'"""
>         )
> 
> does work
> 
> so what's the go ?


Try

"select * from user where login like %s" % ('%%%s%%' % login)

(same as "select * from user where login like %s" % ('%dave%'))

I think you want the % stuff for LIKE to be part of the substituted in
string, not part of the query string.  Make sense?




More information about the Python-list mailing list