gpt4 book ai didi

mysql - SQLAlchemy - 复杂查询的字符串替换

转载 作者:行者123 更新时间:2023-11-29 18:46:37 25 4
gpt4 key购买 nike

我有一个我知道有效的查询:

从论文中选择标题 WHERE MATCH (标题) AGAINST ('+exact +representations' IN BOOLEAN MODE)

这将返回所有同时包含“exact”和“representations”一词的论文。使用 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 在其预处理步骤中破坏了关键字。如何使用 SQLAlchemy 的字符串替换功能但仍能执行我想要的操作?

最佳答案

我能够使用 SQLAlchemy 的内置解决方案 match功能:

keyword = '"exact representations"'
ids += db.session.query(models.Paper)\
.filter(models.Paper.title.match(keyword))\
.all()

FWIW,我无法根据 MySQL spec 使用 '+exact +representations' 完全匹配这两个单词。 。但这似乎与 SQLAlchemy 无关。

关于mysql - SQLAlchemy - 复杂查询的字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com