我使用等于运算符使用以下查询成功地从数据库中获取结果:
return session.query(Employees).filter_by(EmployeeName=request.args.get('Name'))
员工就是班级
'名称'属性通过ajax调用填充
我不确定如何使用like运算符而不是等于?
我尝试过这样的事情,但无济于事
return session.query(Employees).filter(Employees.EmployeeName.like(request.args.get('%Name%')))
答案 0 :(得分:1)
看起来request.args.get('Name')
是您返回名称的方式。在这种情况下将%
放在名称周围将从请求返回错误的(可能是空的)arg。相反,尝试使用结果格式化字符串:
return session.query(Employees).filter(Employees.EmployeeName.like("%{0}%".format(request.args.get('Name')))
答案 1 :(得分:1)
要获得简单'%' || expr || '%'
比较的快捷方式,请使用ColumnOperators
提供的contains()
方法:
session.query(Employees).\
filter(Employees.EmployeeName.contains(request.args.get('Name')))
请注意,可能的通配符不会被转义,因此如果名称包含它们,那么它们的行为就是这样。