0
私は作品を知って、クエリがあります。これは、「正確な」言葉と「表現」の両方を持つ任意の論文を返すSQLAlchemyの - 複雑なクエリのための文字列置換
SELECT title FROM paper WHERE MATCH (title) AGAINST ('+exact +representations' IN BOOLEAN MODE)
を。 SQLAlchemyのの文字列置換を使用して、私が行います
keyword = '+exact +representations'
sql = 'SELECT title FROM paper WHERE MATCH (title) AGAINST (:keyword IN BOOLEAN MODE)'
conn = db.engine.connect()
t = conn.execute(text(sql), keyword=keyword)
これは、両方のキーワードを持つだけの論文と一致しません。代わりに、いずれかの単語で論文を返します。
私の推測では、SQLAlchemyは前処理ステップでkeyword
をマングリングしています。 SQLAlchemyの文字列置換機能を使用するにはどうしたらよいですか?
MySQLに送信されるクエリを表示するには、クエリのログ記録 'create_engine(...、echo = True)'を有効にします。 – plaes
あなたの代わりに引用符AGAINST( ":キーワード" IN "、元のSQLは引用符で囲まれています)を使って試しましたか? –
@NigelRenプレースホルダー置換は適切に引用を処理します。 (SQLインジェクションについて心配する必要はありません) –