You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLAlchemy如何仅查询数据表中的单个列数据?

解决SQLAlchemy仅获取模型特定列的问题

嘿,我来帮你搞定这个需求~你想要获取Person表所有行的name列数据,但之前用的Person.query.get(person.name)方法并不适用,因为get()是用来通过主键值获取单条记录的,完全不是查询整列数据的正确方式。

下面给你两种简单有效的实现方法:

方法一:直接查询指定列

你可以直接通过db.session.query()指定要查询的列:

# 获取包含元组的列表,格式为 [('张三',), ('李四',)]
name_tuples = db.session.query(Person.name).all()

# 如果想要纯字符串列表,用列表推导式转换
names = [name[0] for name in name_tuples]

方法二:使用with_entities()方法

这种方式更贴合query链式调用的风格,效果和上面一致:

# 同样先得到元组列表
name_tuples = Person.query.with_entities(Person.name).all()

# 转换为纯字符串列表
names = [name[0] for name in name_tuples]

如果只需要获取单个name值(比如第一条记录的名字),可以把all()换成first(),然后取索引0:

first_name = Person.query.with_entities(Person.name).first()[0]

内容的提问来源于stack exchange,提问作者ScandinavianWays

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:54:05