【发布时间】:2014-09-08 20:11:27
【问题描述】:
由于某种原因,SQLAlchemy 将我的查询的 LIKE 过滤器值双引号!
代码是这样的:
query = app.db.session.query(model.Attribute)\
.filter(model.Attribute.name == 'photo0')\
.filter(model.Attribute.value.like('%' + file + '%'))\
.all()
非常简单直接。它应该产生类似value LIKE '%78744154439.htm%' 的东西,但 SQLAlchemy 正在添加额外的双引号。
这是来自该查询的数据库回显:
2014-07-17 14:32:24,472 INFO sqlalchemy.engine.base.Engine SELECT attributes.listing_id AS attributes_listing_id, attributes.id AS attributes_id, attributes.name AS attributes_name, attributes.value AS attributes_value
FROM attributes
WHERE attributes.name = %s AND attributes.value LIKE %s
2014-07-17 14:32:24,472 INFO sqlalchemy.engine.base.Engine ('photo0', '"%78744154439.htm%"')
我试图逃避 % 认为这是由于字符串转义,但仍然没有!
我正在运行 Python 2.7.6,SQLAlchemy 0.9.6 和 MySQL-python 1.2.5 作为我的 DBAPI。
【问题讨论】:
标签: python mysql python-2.7 sqlalchemy