gpt4 book ai didi

python - Jython,动态查询多列

转载 作者:行者123 更新时间:2023-12-01 00:01:08 25 4
gpt4 key购买 nike

我正在使用 Oracle 数据库和 Jython。

我可以毫无问题地从数据库中提取数据。

results = statement.executeQuery("select %s from %s where column_id = '%s'", % (column, table, id))

如果我想提取一列数据,这很有效。

假设我想循环抛出一个这样的列表:

columns = ['column1', 'column2', 'column3', 'column4', 'column5']

所以查询最终看起来像这样:

results = statement.executeQuery("select %s, %s, %s, %s, %s from %s where column_id = '%s'", % (column1, column2, column3, column4, column5, table, id))

我怎样才能做到这一点?

我想要实现此目标的原因是因为我可能想要提取 6 或 7 列,并且我想将不同的查询存储在外部文件中。

希望你明白我的意思。如果没有,我会尽力重新措辞。

干杯

亚瑟

最佳答案

您可以简单地将查询中的所有列替换为单个字符串,如下所示:

columns = ['column1', 'column2', 'column3', 'column4', 'column5']
results = statement.executeQuery("select %s from %s where column_id = '%s'" % (",".join(columns), table, id))

顺便说一句,这并不能防止 SQL 注入(inject),因此我假设列、表和 id 输入是程序生成或已清理的。

关于python - Jython,动态查询多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/443224/

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