基本 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}} } }]
允许用户选择多个值的基本变量

要允许用户将多个值插入到您的变量中,您需要以一种方式编写代码,使其在插入到代码中时,多个值才有意义。最常见的方法是使用带有 IN 的 WHERE 子句
SELECT
*
FROM
products
WHERE
category IN ({{category_vars}});
在代码就位后,您需要将“用户可以选择”设置设置为多个值。但是,在这种情况下,您最好使用字段过滤器。
基本 SQL 变量在过滤器类型方面选项有限
- 文本:一个简单的输入框
- 数字:一个简单的输入框
- 日期:一个简单的日期选择器
- 布尔值:一个“此或彼”选择器。
如果您想要一个更具表达力的过滤器小部件,例如动态日期选择器,您应该使用字段过滤器变量。
使变量成为可选
请参阅可选变量。
阅读其他版本的 Metabase 的文档。