本文介绍了SQLAlchemy 使用通配符或 ILIKE 来更新语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在更新语句中使用 ilike
但是当我尝试时它返回这个错误:
I need to use ilike
in an update statement but it returns this error when I try:
InvalidRequestError:无法在 Python 中评估当前条件.为同步会话参数指定 'fetch' 或 False.
对于此代码:
meta.Session.query(i.mappedClass).filter(getattr(i.mappedClass, j).ilike("%"+userid+"%")).update({j:newUserId})
我可以使用诸如 regexp_replace 之类的东西,但这有点矫枉过正.我只是想让更新适应不区分大小写和两端的空格.
I could use something like regexp_replace but it's a bit overkill. I just want the update to accommodate case insensitivity and spaces at either end.
推荐答案
好吧,这令人沮丧!
我发现的简单解决方法是:
The simple workaround I found was this:
for i in model.dataTables:
for j in i.idColumn:
rows = meta.Session.query(i.mappedClass).filter(getattr(i.mappedClass, j).ilike("%"+userid+"%")).all()
for row in rows:
setattr(row, j, newuserid)
meta.Session.commit()
这篇关于SQLAlchemy 使用通配符或 ILIKE 来更新语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!