当前位置: 首页 > 面试题库 >

是否可以在SQLite查询中使用返回的列值作为表名?

邓焱
2023-03-14
问题内容

我想编写一个查询来检查SQLite数据库中的所有表是否有一条信息,以便简化事后诊断(性能无关紧要)。

我希望编写一个查询,该查询使用sqlite_master表获取表列表,然后在一个查询中对其进行查询:

SELECT Name 
FROM sqlite_master
WHERE Type = 'table' AND (
    SELECT count(*)
    FROM Name
    WHERE conditions
    ) > 0;

但是,当尝试执行这种查询样式时,我收到一条错误消息no such table: Name。是否有其他语法允许这样做,还是根本不支持它?


问题答案:

SQLite被设计为嵌入式数据库,即与“真实”编程语言一起使用。为了能够使用这种动态构造,您必须不使用SQLite本身:

cursor.execute("SELECT name FROM sqlite_master")
rows = cursor.fetchall()
for row in rows:
    sql = "SELECT ... FROM {} WHERE ...".format(row[0])
    cursor.execute(sql)


 类似资料:
  • 我需要为我的反应式spring应用程序实现一个graphql查询解析器。 以下是我的graphlq模式: 我的解析器如下所示: 我使用的是5.0.2和5.2.4

  • 问题内容: 上面的语句返回3行。但是下面的语句仅返回2行。 我知道为什么会这样,但是有一种方法可以强制item_id 1返回两次? 我要退货的示例: id-> 1筹码€2.50 id-> 1筹码€2.50 id-> 2可口可乐€1.60 -------------------- 总计€6.60 问题答案: 您可以加入另一个表,例如 或者只是在您的应用程序中复制它们。 您实际上不需要做您所要的。

  • 问题内容: 我有两个清单: 并想要获取一个长度为(A)的布尔列表,其中每个索引处的元素指示A中相同索引处的元素是否在列表B中的任何位置。返回值为: 编写一个函数很容易,但是想知道在Python中是否有一种范式来实现它。 在R中,对应项为 问题答案: 使用列表理解: 如果巨大,那么最好将其转换为第一个。如此,将集合的成员资格测试 与列表中的进行比较。

  • 我试图从表文章列表的文章与类别列表,每篇文章是列出的。假设文章“A”有3个类别“1”,“2”,“3”,我有一个以上的文章有一个以上的类别。我想在ArticleViewModel的列表中获得CategoryViewModel的列表。因为它是IEnumerableList,所以当我使用FirstOrDefault()时,我会在每个文章下获得相同的类别名称,但获得的文章数量是正确的。我如何才能获得类别名

  • 有以下功能: 为了更准确,我使用Java中的泛型类型定义了返回的,即,但它不起作用,出现错误: 类型对象不可下标 问:是否有可能定义返回的与泛型类型?

  • 我想创建一个配置单元UDF函数,它根据一些值返回特定的列名,比如retreivecol(年龄)。如果年龄是20,那么返回在选择查询中使用的列名列表,比如'name、email、fbuserid、friend list‘等。如果年龄小于20,只返回'name'。所以我希望我的配置单元QL查询看起来像 上面的查询只打印列的名称,如'name、email、fbuserid、friendslist'等,而