sqlalchemy 查询数据,按照字段中数据(中文)转拼音(升序)排序

1.sqlalchemy 查询数据,按照字段中数据(中文)转拼音(升序)排序
2.已知sqlalchemy中有func.convert和sql.func.CONVERT方法,导入方式为

from sqlalchemy import func
from sqlalchemy import sql

下面是我的实现方式

self.db.query(Table).order_by(
            sql.func.CONVERT(sql.literal_column('VARCHAR(8)'), 
            Table.department_name, sql.literal_column('8'))).all()

结果提示:
ProgrammingError: (_mysql_exceptions.ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARCHAR(8), Table.department_name, 8)

不知道如何实现?

阅读 5.8k
2 个回答
新手上路,请多包涵
self.db.query(Table).order_by(
            sql.func.CONVERT(sql.literal_column('department_name as gbk'))
            ).all()

这样应该就行了,sql.literal_column本质是一个用来往func的方法里传入任意代码的方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题