【问题标题】:SQLite nested querySQLite 嵌套查询
【发布时间】:2020-05-07 18:43:31
【问题描述】:

我已经搜索了很长一段时间,但没有成功弄清楚如何从一个给定的其他列都不为空的表中选择 id 列。

我尝试绑定一个嵌套查询,例如:

SELECT id, name FROM spam_table WHERE (SELECT c.name FROM pragma_table_info('spam_table') c WHERE c.name LIKE '%ham%' OR c.name LIKE '%eggs%') IS NOT NULL

内部PRAGMA有什么方法可以返回对应的列名用于外部查询。以及如何确保使用OR 将外部查询放在一起

干杯。

【问题讨论】:

    标签: python sql sqlite


    【解决方案1】:

    内部PRAGMA有什么方法可以返回对应的 用于外部查询的列名。

    没有。 sqlite 中没有“动态”列名(或表名)。

    在 python 中的一种方法:

    • 执行pragma_table_info选择
    • 获取结果
    • 迭代结果并创建所需的sql字符串
    • 执行创建的sql字符串

    【讨论】:

    • 好点。但是话又说回来,获取整个 spam_table 并使用 python 进行提取不是更简单。我试试看
    【解决方案2】:

    感谢@DinoCoderSaurus 指出没有动态列名

    我正在使用的代码需要更多的 Python 风格,但实际上我正在运行它

    for a in spam_table[0]: # Tables Header from the pragma_table_info(spam_table)
        for i in eggs:      # Search terms given by the UI
            if i in a:
                spam_eggs.append(self.spam_table[0].index(a))
    

    现在我知道要检查哪些列来提取id

    【讨论】:

      猜你喜欢
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2020-08-04
      • 2021-05-02
      相关资源
      最近更新 更多