[storm] agrupando condiciones en storm
Jamu Kakar
jkakar at kakar.ca
Fri May 1 22:42:31 UTC 2015
Hola Javier,
2015-05-01 7:00 GMT-07:00 Javier Marcon <javiermarcon at gmail.com>:
> Hola, yo necesitaría agrupar condiciones en storm, para tener una
> consulta sql similar a esta:
>
> SELECT Persona.nombre, Persona.apellido, Persona.email, Persona.edad,
> persona.casado
> FROM Persona WHERE Persona.casado = %s AND ((Persona.nombre = %s and
> Persona.edad = %s) or Persona.edad = %s) ORDER BY Persona.patente
>
> Hice el siguiente codigo paro no encuentro como hacer el agrupamiento
> del final:
>
> params = []
> if nombre is not None:
> params.append( Persona.nombre == unicode(nombre) )
> if apellido is not None:
> params.append( Persona.apellido ==
> unicode(apellido) )
> if condiciones is not None:
> cond = Or(And(Persona.nombre == u'Pepe',
> Persona.edad == 20),
> Persona.edad == 25)
> params.append( *condiciones )
> if params:
> resultado = store.find(Persona, And(*params))
> else:
> resultado = store.find(Persona)
>
> Alguien tiene idea de como puedo hacerlo?
This should generate the SQL query you provided:
result = store.find(Persona,
Person.casado == casado,
Or(And(Persona.nombre == nombre, Persona.edad ==
edad),
Persona.edad == edad))
result.order_by(Persona.patente)
>From the code you have above, I wonder if what you want is something
like this:
params = [Person.casado == casado]
if nombre is not None and edad is not None:
params.append(Or(And(Persona.nombre == nombre, Persona.edad == edad),
Persona.edad == edad))
elif edad is not None:
params.append(Persona.edad == edad)
result = store.find(Persona, *params)
result.order_by(Persona.patente)
Hope this helps,
J.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/storm/attachments/20150501/e98c1097/attachment.html>
More information about the storm
mailing list