简体   繁体   English

如何使用 SQLAlchemy 创建“ORDER BY Column = 'Value'”查询

[英]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.

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