简体   繁体   English

按结果字符数过滤SqlAlchemy列值

[英]filter SqlAlchemy column value by number of resulting characters

How can I filter SqlAlchemy column by number of resulting Characters, 如何按产生的字符数过滤SqlAlchemy列,

Here is a kind of implementation I am looking at, 这是我正在查看的一种实现,

query = query.filter(Take_Last_7_Characters(column_1) == '0321334') 查询= query.filter(Take_Last_7_Characters(column_1)=='0321334')

Where "Take_Last_7_Characters" fetches the last 7 characters from the resulting value of column_1 其中“ Take_Last_7_Characters”从column_1的结果值中获取最后7个字符

So How can I implement Take_Last_7_Characters(column_1) ?? 那么我该如何实现Take_Last_7_Characters(column_1)呢?

use sqlalchemy.sql.expression.func , to generate SQL functions. 使用sqlalchemy.sql.expression.func生成SQL函数。

check for more info 检查更多信息

Please use the func to generate SQL functions as directed by @tuxuday. 请按照@tuxuday的指示使用func生成SQL函数。
Note that the code is RDBMS-dependant. 请注意,该代码取决于RDBMS。 The code below runs for SQLite , which offers SUBSTR and LENGTH functions. 下面的代码在SQLite运行,该SQLite提供SUBSTRLENGTH函数。 Your actual database might have different names for those ( LEN, SUSBSTRING, LEFT, RIGHT , etc). 您的实际数据库可能使用不同的名称( LEN, SUSBSTRING, LEFT, RIGHT等)。

qry = session.query(Test)
qry = qry.filter(func.SUBST(Test.column_1, func.LENGTH(Test.column_1) - 6, 7) == '0321334')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM