Ci sono diversi modi per farlo:
inserimento del filtro (e gestore)
query = meta.Session.query(User).filter(
User.firstname.like(search_var1),
User.lastname.like(search_var2)
)
Utilizzando filter_by (e operatore)
query = meta.Session.query(User).filter_by(
firstname.like(search_var1),
lastname.like(search_var2)
)
concatenazione filtro (e operatore)
query = meta.Session.query(User).\
filter_by(firstname.like(search_var1)).\
filter_by(lastname.like(search_var2))
Utilizzando or_() o and_() e non()
from sqlalchemy import and_, or_, not_
query = meta.Session.query(User).filter(
and_(
User.firstname.like(search_var1),
User.lastname.like(search_var2)
)
)
fonte
2017-06-22 14:26:21
ho pensato che questa domanda corrisponde al problema che ho, ma le risposte non si applicano al mio particolare scenario. Se firstname è "joe" e lastname è "smith", sto cercando una dichiarazione di filtro che corrisponda quando il searchVar fornito è "joe smith". Ad esempio, i campi devono essere concatenati (con lo spazio aggiunto) prima che venga effettuato il test. Sembra uno scenario del mondo reale. – Groovee60
@ Groovee60 Questo è esattamente quello che sto cercando. Gradirei se tu fossi in grado di condividere la tua soluzione, se ne hai trovata una. – Lilylakshi