[英]How to create “ORDER BY Column = 'Value'” query with SQLAlchemy
I am new to SQLAlchemy & wanted to create an SQLAlchemy query equivalent to "order by exact match first".我是 SQLAlchemy 的新手,想创建一个 SQLAlchemy 查询,相当于“首先按完全匹配排序”。 Below is the SQL:下面是 SQL:
select word from dictionary where word like '%Time%' order by (word = 'Time') desc;
This is my SQLAlchemy equivalent.这是我的 SQLAlchemy 等价物。
Dictionary.query.with_entities ( Dictionary.word )
.filter(Dictionary.word.like("%{}%".format("Time")))
.order_by(Dictionary.word == "Time")
But it throws an error at "order_by": SyntaxError: keyword can't be an expression.但它在“order_by”处引发错误:SyntaxError:keyword can't be an expression。 How to solve it?如何解决?
Solved it.解决了。
from sqlalchemy.sql import func
.order_by(Dictionary.word == q,func.length(Dictionary.word))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.