如何使用SQL炼金术进行"启动"查询?

ber*_*436 13 python sqlalchemy

我正在学习使用SQL alchemy连接到mysql数据库.我想从数据库中提取以给定字符串开头的记录.我知道,对于简单的平等,我需要做的就是这个

queryRes = ses.query(Table).filter(Tablee.fullFilePath == filePath).all()
result = []
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

queryRes = ses.query(Table).filter(Table.fullFilePath.startsWith(filePath)).all()
result = []
Run Code Online (Sandbox Code Playgroud)

也许查询看起来像这样?

q = ses.query(Table).filter(Table.fullFilePath.like('path%')).all()
Run Code Online (Sandbox Code Playgroud)

Joh*_*ann 21

SQLAlchemy有一个startswith列属性,所以它的工作原理与你想象的完全相同:

queryRes = ses.query(Table).filter(Table.fullFilePath.startswith(filePath)).all()
Run Code Online (Sandbox Code Playgroud)

  • SQLAlchemy ..真是一个库。像纯粹使用 Python 一样进行查询 (2认同)

Jak*_*yer 15

这是纯SQL:

SELECT * FROM table WHERE field LIKE "string%"
Run Code Online (Sandbox Code Playgroud)

SQL炼金术是:

q = ses.query(Table).filter(Table.fullFilePath.like('path%')).all()
Run Code Online (Sandbox Code Playgroud)


Mar*_*ery 5

如果您需要不区分大小写的比较,请使用ilike

session.query(SomeTable).filter(SomeTable.some_column.ilike('bla%')).all()
Run Code Online (Sandbox Code Playgroud)