基本 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 的文档。