我有一个数据库,我正在尝试使用MID()函数查询信息。在普通的SQL中,我会使用MID,如(来自W3示例网站)..
Integral
将此转换为sqlalchemy一直是一个挑战。我可以使用分页执行查询,但不能使用mid。到目前为止我有 有效的原始查询..
SELECT MID(City,1,4) AS ShortCity
FROM Customers;
将其转换为无效..
links = Item.query.filter(Item.title.like('%' +search_term +'%')).paginate(page, 10, True)
我只想要标题中的x-y字符数量(字符串列)
答案 0 :(得分:1)
我可以看到您在
中的括号中缺少逗号,
func.mid(Item.title.like, 1, 3)('%' +search_term + '%')
使括号中的第二个表达式成为第一个表达式的参数。这是异常的来源
TypeError: 'Function' object is not callable.
但是,要生成LIKE
运算符,请尝试:
func.mid(Item.title, 1, 3).like('%' +search_term + '%')
这为您提供了python代码似乎建议的WHERE子句。 在您的代码中,like
放错地方了。
但是,如果要生成以下SQL:
SELECT MID(City,1,4) AS ShortCity
FROM Customers;
适当的sqlalchemy代码将是
session.query(func.mid(Customer.city, 1, 4).label('ShortCity'))
假设模型名为Customer
并且有一个名为city
的字段。