基本 SQL 参数

如果您想在查询中过滤数据库字段,应优先使用字段过滤器变量,它们需要不同的语法。

文本、数字和日期变量允许您将基本值插入 SQL 代码。

要将基本变量添加到 SQL 查询中,请将变量用双花括号括起来:{{variable_name}}

此示例定义了一个名为 category_filter文本变量(但您可以随意命名变量)


SELECT
  count(*)
FROM
  products
WHERE
  category = {{category_filter}};

这些基本变量只是将小部件设置的值插入到代码的占位符中。基本变量的语法与字段过滤器不同。

这是字段过滤器的语法


WHERE
  {{category}}

而基本变量的语法包含一个=运算符


WHERE
  category = {{category}};

在这里,我们不将变量连接到数据库字段;我们只是将值插入变量。

Metabase 将读取该变量并向查询附加一个过滤器小部件,用户可以使用该小部件更改插入到 category 变量中的值。因此,如果有人在过滤器小部件中输入“Gizmo”,Metabase 将运行的查询将是

SELECT
  count(*)
FROM
  products
WHERE
  category = 'Gizmo';

如果您正在编写原生的 MongoDB 查询,您的查询将更像这样,其中 category 变量是在 match 子句中定义的

[{ $match: { category: {{category}} } }]

允许用户选择多个值的基本变量

Basic variable with multiple values

要允许用户将多个值插入到您的变量中,您需要以一种方式编写代码,使其在插入到代码中时,多个值才有意义。最常见的方法是使用带有 INWHERE 子句


SELECT
  *
FROM
  products
WHERE
  category IN ({{category_vars}});

在代码就位后,您需要将“用户可以选择”设置设置为多个值。但是,在这种情况下,您最好使用字段过滤器

基本 SQL 变量在过滤器类型方面选项有限

  • 文本:一个简单的输入框
  • 数字:一个简单的输入框
  • 日期:一个简单的日期选择器
  • 布尔值:一个“此或彼”选择器。

如果您想要一个更具表达力的过滤器小部件,例如动态日期选择器,您应该使用字段过滤器变量

使变量成为可选

请参阅可选变量

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想改进这些文档吗?提议更改。
© . This site is unofficial and not affiliated with Metabase, Inc.