我使用sqlalchemy ORM。我有以下自定义列类型和表映射类:
class JSONEncodedDict(TypeDecorator):
impl = VARCHAR
def process_bind_param(self, value, dialect):
if value is not None:
value = json.dumps(value)
return value
def process_result_value(self, value, dialect):
if value is not None:
value = json.loads(value)
return value
Base = declarative_base()
class Task(Base):
__tablename__ = 'tasks'
id = Column(INT, primary_key=True)
description = Column(JSONEncodedDict)
created = Column(TIMESTAMP)
updated = Column(TIMESTAMP)
我想使用运算符“like”查询对象:
^{pr2}$但据我所见,方法process_bind_param
也转换了like
运算符的参数。所以在sql跟踪中我看到了
...WHERE description LIKE '"%some pattern%"'
而不是
...WHERE description LIKE '%some pattern%'
所以没有行匹配。在
如何以我想要的方式使用LIKE
运算符执行查询?在
可以使用^{} 绕过自动类型处理(或使用
type_
参数强制执行自己的类型处理):相关问题 更多 >
编程相关推荐