SQLAlchemy 使用通配符或 ILIKE 进行更新语句
我需要在更新语句中使用 ilike
但当我尝试时它会返回此错误:
InvalidRequestError:无法评估 Python 中的当前条件。为synchronize_session 参数指定“fetch”或False。
对于这段代码:
meta.Session.query(i.mappedClass).filter(getattr(i.mappedClass, j).ilike("%"+userid+"%")).update({j:newUserId})
我可以使用类似 regexp_replace 的东西,但这有点矫枉过正。我只是希望更新能够适应大小写不敏感和两端的空格。
I need to use ilike
in an update statement but it returns this error when I try:
InvalidRequestError: Could not evaluate current criteria in Python. Specify 'fetch' or False for the synchronize_session parameter.
for this code:
meta.Session.query(i.mappedClass).filter(getattr(i.mappedClass, j).ilike("%"+userid+"%")).update({j:newUserId})
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个:
产生 SQL:
事实上,您可以通过删除
where
子句来更新表中的所有记录:它会产生如下 SQL:
Try this:
produces SQL:
In fact you can update all records in the table by just removing the
where
clause:which produces SQL like this:
好吧,这很令人沮丧!
我发现的简单解决方法是这样的:
Ok that was frustrating!
The simple workaround I found was this: