using like and % in MySQLdb
Dave Harrison
dave at nullcube.com
Thu Aug 7 06:39:33 EDT 2003
> >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.
> >
> Why don't you do
> self.curs.execute(
> """SELECT * FROM user WHERE login LIKE %s""", ("%"+login+"%", ))
>
> The problem with escaping the % characters is, that MySQLdb converts
> self.curs.execute("""SELECT * FROM user WHERE login LIKE '%%%s%%'""" ,
> (login,))
> to
> "SELECT * FROM user WHERE login LIKE '%'dave'%'"
> and I don't know how to prevent this.
hehe yeah Id been testing what I was doing against my mysql client and couldnt work out why the module kept adding the '', you're solution works a treat, thanks torsten
> >however this :
> >
> >self.curs.execute(
> > """SELECT * FROM user WHERE login LIKE '%dave%'"""
> > )
> >
> >does work
> >
> >so what's the go ?
> >cheers
> >Dave
> >
>
> --
> http://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list