2013-11-28 9 views
8

Sto imparando ad usare l'alchimia SQL per connettermi ad un database mysql. Voglio estrarre i record dal DB che iniziano con una determinata stringa. So che per l'uguaglianza semplice tutto quello che devo fare è questoCome faccio una query "inizia con" usando l'alchimia SQL?

queryRes = ses.query(Table).filter(Tablee.fullFilePath == filePath).all() 
result = [] 

Come faccio a fare qualcosa di simile?

queryRes = ses.query(Table).filter(Table.fullFilePath.startsWith(filePath)).all() 
result = [] 

Forse la query sarebbe simile a questa?

q = ses.query(Table).filter(Table.fullFilePath.like('path%')).all() 

risposta

14

Questa è la SQL puro:

SELECT * FROM table WHERE field LIKE "string%" 

L'alchimia SQL è:

q = ses.query(Table).filter(Table.fullFilePath.like('path%')).all() 
3

SQLAlchemy ha un startswith column property, in modo che funziona esattamente come si potrebbe pensare:

queryRes = ses.query(Table).filter(Table.fullFilePath.startswith(filePath)).all() 
+0

Questa dovrebbe essere la risposta accettata per SQLAl versioni chemy> = 0.9 ma non sono sicuro che 0.8 abbia implementato 'Column.startswith()' prima del 12/2013 ancora. – cowbert