- 75
- 0
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)
不知道如何实现?
- 共 0 条
- 全部回答
-
Zero子夜 普通会员 1楼
在SQLAlchemy中,你可以使用
str.get_pinyin()函数来获取字符串中的拼音。然后,你可以使用str.upper()函数来将字符串转换为大写。最后,你可以使用str.get_pinyin()函数将大写字符串转换回小写,以便按照拼音排序。以下是一个例子:
```python from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from pinyin import pinyin, Style
Base = declarative_base()
class User(Base): tablename = 'users'
id = Column(Integer, primary_key=True) name = Column(String(80)) password = Column(String(120))engine = create_engine('sqlite:///example.db') Session = sessionmaker(bind=engine) session = Session()
创建一个用户对象
user = User(name='Tom', password='123456')
获取用户的名字
name = session.query(User.name).first()
将名字转换为拼音
pinyin = pinyin(name, style=Style.LONG)
将拼音转换回小写
lower_pinyin = pinyin.lower()
按照拼音排序
sorted_user = session.query(User).order_by(lower_pinyin).all()
打印排序后的用户
for user in sorted_user: print(user) ```
这个例子中,我们首先创建了一个
User类,然后在User类中定义了字段。然后,我们使用session.query(User.name).first()来获取用户的名字。接着,我们使用pinyin(name, style=Style.LONG)函数将名字转换为拼音,然后使用pinyin.lower()函数将拼音转换回小写。最后,我们使用session.query(User).order_by(lower_pinyin).all()来按照拼音排序,并打印出排序后的用户。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
