【发布时间】:2016-03-23 12:36:54
【问题描述】:
我在 Windows 7 上使用 Python2.7 和一个 mysql 服务器,通过 pymssql 连接。
我的问题:我有一个非常大的数据库,我喜欢从列表中选择与多个单词(字符串)之一匹配的对象的 ID,然后将其提供给我的程序。 在这个查询中,我列表中的这些单词也必须有一个 LIKE %...% 表达式。
到目前为止,我已将 Python 脚本连接到数据库并定义了一个游标。 然后我用我正在搜索的单词制作了一个小列表,并为稍后的查询创建了一些占位符:
wortliste = ['Bruch', 'Verwerfung']
placeholders = ','.join(['%s'] * len(wortliste))
这是我的查询:
query = """ SELECT BO_INDEX FROM GeoTest.dbo.Tabelle_Bohrung
WHERE BO_BEMERKUNG IN ({})""".format(placeholders)
当我搜索单个单词时,例如这里的单词“Bruch”,我的查询将如下所示:
query = """ SELECT BO_INDEX FROM GeoTest.dbo.Tabelle_Bohrung
WHERE BO_BEMERKUNG LIKE '%Bruch%'"""
单个单词的此查询与正确的 Id (=BO_INDEX) 匹配。 带有占位符的查询不会崩溃,但它不匹配任何内容:(
但我喜欢循环我的数据库中的几个单词,并为我的列表中的每个单词(字符串)附加匹配的 ID(=wortliste)并将其附加到一个新列表中。
我真的不知道如何解决这个问题!
我很感激解决这一挑战的每一种新方法! 谢谢!
【问题讨论】: