4
我使用sqlalchemy ORM。我有以下的自定義字段類型和表映射類:SQLAlchemy:運算符LIKE和自定義類型
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)
我想查詢使用操作符「喜歡」 objcts:
tasks = session.query(Task).filter(Task.description.like("%some pattern%")).all()
但就我所看到的,方法process_bind_param
也轉換參數like
運營商。所以在SQL跟蹤我看到
...WHERE description LIKE '"%some pattern%"'
,而不是
...WHERE description LIKE '%some pattern%'
所以沒有行匹配。
如何以我想要的方式使用LIKE
運算符執行查詢?
是否有訪問,如果在自定義類型正在使用'like'條款的方式? – Kazanz 2018-02-22 15:59:37