我要做的就是从主键匹配的特定表中检索单个记录。我有一种感觉,因为它似乎是一项简单的任务,所以我非常复杂。我有一个理论,它可能不知道变量值,因为它实际上并没有从Python代码中提取它,而是试图在数据库中找到一个同名的变量。
编辑:我是否可能需要在表达式语句中包含where子句?
我的Python代码是
def get_single_record(name_to_search):
my_engine = super_secret_inhouse_engine_constructor("sample_data.csv")
print("Searching for " + name_to_search)
statement = my_engine.tables["Users"].select().where(my_engine.tables["Users"].c.Name == name_to_search)
# Print out the raw SQL so we can see what exactly it's checking for
print("You are about to run: " + str(statement))
# Print out each result (should only be one)
print("Results:")
for item in my_engine.execute(statement):
print(item)
我试着在它的位置编写一个字符串。 我尝试使用like instead of where。 所有的结果都是一样的。
我希望它能够生成类似于SELECT * FROM MyTable WHERE Name='Todd'
。
Searching for Todd
STATEMENT: SELECT "Users"."Name", ...
FROM "Users"
WHERE "Users"."Name" = ?
这是一个真实的问号出现在我的陈述中,而不仅仅是我自己的困惑。然后,它会打印出表中所有记录的集合,就像它成功匹配所有记录一样。
编辑2:运行我自己的硬编码SQL字符串或Alchemy生成的查询返回表中的每条记录。我开始认为问题可能出在我设置的不接受查询的引擎上。
根据the official documentation和third party sources,我应该能够与硬编码字符串进行比较,然后通过代理,能够与变量进行比较。