gpt4 book ai didi

python - 在 SQL 中搜索一个字段以查看它是否包含 python 变量

转载 作者:行者123 更新时间:2023-11-30 22:16:11 24 4
gpt4 key购买 nike

我正在使用 Canari 框架在 Malteog 中构建一系列转换,扫描 MySQL 数据库并将结果作为实体返回。

除了 SQL 语句中的 LIKE 运算符,我已经得到了所有的东西。这是代码:

#===========================================================================
# Request and set target from graph

target = (request.entity.value)

#===========================================================================
# Extract message column and check against target entity

statement = (
"SELECT * FROM tableT.TTO WHERE Text LIKE %(tq)s"
)

cursor.execute(statement, { 'tq': target })

results = cursor.fetchall()

#===========================================================================
# Create response entities based on SQL output

for r in results:

e = getTTO(target)
e.From = r[0]
e.Text = r[1]
e.date = r[2]
e.iconurl = 'http://local.paterva.com/phrase.png'
response += e

它有效,但它只返回完全匹配的结果。我需要它来检查 TEXT 列以查看条目是否包含变量“target”的任何提及。我花了一天的大部分时间来获取传入的 python 变量,但我无法让它返回除完全匹配之外的任何内容。

最佳答案

SQL LIKE 运算符在值之前和/或之后需要特殊的“通配符”标记(MySQL 中的“%”)(取决于您是否想要“开始于”、“结束于”或“包含”搜索)。你必须在你的论点周围添加这些通配符,即:

cursor.execute(statement, {'tq': "%{}%".format(target)})

另请注意,cursor.fetchall() 会将您的整个结果集加载到内存中,这会请求 MemoryErrorcursor 对象是可迭代对象,这样使用它们更安全:

cursor.execute(statement, {'tq': "%{}%".format(target)})
for row in cursor:
do_something_with(row)

关于python - 在 SQL 中搜索一个字段以查看它是否包含 python 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38200291/

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