当前位置: 首页 > 面试题库 >

如何在sqlalchemy查询中选择文字值?

贾骏
2023-03-14
问题内容

我有一个查询,看起来像这样:

query = session.query(Item) \
    .filter(Item.company_id == company_id) \
    .order_by(Item.id)

这是一个非常基本的查询。除了提取Item的值之外,我还想将其他值添加到混合中,然后将其返回给我。在原始SQL中,我会这样做:

SELECT *, 0 as subscribed
FROM items
WHERE company_id = 34
ORDER BY id

如何通过sqlalchemy手动添加该值?


问题答案:

您需要使用literal_column,看起来有点像这样:

sqlalchemy.orm.Query(Item, sqlalchemy.sql.expression.literal_column("0"))

注意,该text参数无需任何转换即可插入查询;如果您从应用程序外部接受text参数的值,则可能使您暴露于SQL
Injection漏洞。如果这是您需要的东西,您将需要使用bindparam,它几乎一样易于使用;但您必须发明一个名称:

sqlalchemy.orm.Query(Item, sqlalchemy.sql.expression.bindparam("zero", 0))


 类似资料:
  • 问题内容: 我创建了一个用于创建表达式的函数 现在,当我用 然后就可以了 但是当我通过时 然后,它给出错误,即abc不是列。 我试图将其转换 但这是行不通的。 如果我打电话给我 有没有办法获取operator1的类型,并在此基础上创建能够映射到相同内容类型的literal_colum? 问题答案: 任何文字值都可以转换为表达式构造:

  • 问题内容: 是否可以控制在SQLAlchemy的查询方法中查询哪些列,同时仍返回您正在查询的对象的实例(尽管已部分填充)? 还是SQLAlchemy有必要执行映射到对象? (我确实知道可以查询单个列,但不会将结果映射到对象,而仅映射到命名元组的组件)。 例如,如果User对象具有属性userid,name,password和bio,但是您希望查询仅为其返回的对象填写userid和name: 将打印

  • 问题内容: 我有一个正在处理的查询,我想增加一个字段并在键值不同时重新启动计数器。 我知道这段代码行不通。以编程方式,这就是我想要的… …最终结果看起来像这样: 是的,我坚持使用SQL2k。否则,该row_number()将起作用。 问题答案: 假设一个表: 在Microsoft SQL Server 2000中获得此权限的一种方法是使用子查询对具有相同ID和较低顺序的行进行计数。 提示: 现在是

  • 我在这里尝试使用光标,我想知道如何访问选择列中的光标字段? 我有一个如下的实现, 我想明白,这个实现有什么问题。 谢谢你。

  • 问题内容: 这是我的(PostgreSQL)表- 我想选择所有 不 知道要结婚的人,即包括那些拥有NULL wedding_status的人。 这并 不能 正常工作- 当然可以- 问题是我正在使用-从SQLAlchemy访问它 转换为- 而且也 没有 工作- 也不- 如何通过SQLAlchemy选择NULL值? 问题答案: (由指示@augurar)):因为 SQLAlchemy的 使用 魔术方法

  • 问题内容: 我用来从表中获取数据。现在,从称为的表中获取所有记录正在按预期方式工作。 现在,我希望对多个列执行查询,如下所示: 但这给LIKE带来了错误。我怎样才能做到这一点? 问题答案: 请像运营商一样使用 http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOpera