查詢參數
快速導覽
透過參數,您可以在執行階段將數值代入查詢中,而無需編輯來源。任何在雙大括號 {{ }}
中的字串都會被視為參數。結果窗格上方會出現一個小工具,讓您變更參數值。

在編輯模式中,您可以點擊每個參數小工具的齒輪圖示來調整其設定。當您點擊僅顯示資料時,齒輪圖示會消失,這樣不擁有查詢的使用者就無法變更參數的行為。

從 UI 新增參數
您可以使用 新增參數
按鈕或相關的鍵盤快捷鍵,將參數插入到查詢中並立即啟動其設定窗格。參數將會插入到查詢中文字游標出現的位置。如果您發現參數插入在查詢的錯誤位置,您可以選取整個參數(包括大括號!)並剪下/貼上到任何必要的位置。
您可以將游標懸停在 新增參數
按鈕上方,以探索您的作業系統上的快速鍵。
參數設定
點擊每個參數小工具旁邊的齒輪圖示來編輯其設定
- 標題:預設情況下,參數標題會與查詢文字中的關鍵字相同。如果您想要給它一個更友善的名稱,可以在此處變更。
- 類型:每個參數開始時都是文字類型。支援的類型有文字、數字、日期、日期和時間、日期和時間(含秒)以及下拉式清單。

全域
核取方塊,用於通知 Redash 您打算在儀表板中的多個小工具中使用此參數。全域
核取方塊自第 6 版起已由下方描述的新的儀表板參數映射功能取代。
出於安全考量,Redash 使用者必須擁有資料來源的完整存取權限才能使用文字類型的查詢參數。其他類型(例如日期、日期範圍、數字或下拉式清單)則適用於所有使用者。
日期和日期範圍參數
日期參數使用熟悉的日曆選擇介面,並且可以預設為目前的日期和時間。您可以從三個精確度層級中選擇:日期、日期和時間以及日期和時間(含秒)。
日期範圍參數會插入兩個名為 .start
和 .end
的標記,表示您選擇的日期範圍的開始和結束。
SELECT a, b c
FROM table1
WHERE
relevant_date >= '{{ myDate.start }}'
AND table1.relevant_date <= '{{ myDate.end }}'
日期參數會以字串形式傳遞至您的資料庫。因此,您應該將它們包在單引號 ('
) 或您的資料庫用來宣告字串的任何符號中。雖然它們的行為類似文字參數,但日期仍然可以安全地用於嵌入式和共用儀表板。
日期範圍參數使用組合式小工具來簡化範圍選擇。
快速日期和日期範圍選項
當您在查詢中新增日期或日期範圍參數時,選擇小工具會顯示一個藍色的閃電符號。點擊該符號可查看動態值,例如「今天」或「昨天」。
也有動態日期範圍選項。動態日期範圍的完整清單如下
- 本週
- 本月
- 今年
- 上週
- 上個月
- 去年
- 過去 7 天
- 過去 14 天
- 過去 30 天
- 過去 60 天
- 過去 90 天
- 過去 12 個月
下拉式清單
如果您想要在執行查詢時限制可能的參數值範圍,您可以使用 Redash 的 下拉式清單
參數類型。從參數設定面板中選取時,會出現一個文字方塊,您可以在其中輸入允許的值,每個值以新行分隔。下拉式清單實際上是 文字
參數,因此如果您想在下拉式清單中使用日期/日期時間,您應該以資料來源要求的格式輸入它們。
以查詢為基礎的下拉式清單
下拉式清單也可以與現有查詢的結果相關聯。只需點擊設定面板中類型下的 以查詢為基礎的下拉式清單
即可。在從中載入下拉式清單值的查詢列中搜尋您的目標查詢。如果您的目標查詢傳回大量記錄,效能會降低。
如果您的目標查詢傳回多個欄位,Redash 會使用第一個欄位。如果您的目標查詢傳回 name
和 value
欄位,Redash 會使用 name
欄位來填入參數選擇小工具,但會使用相關的 value
來執行查詢。
例如,假設這個查詢
SELECT user_uuid as ‘value’, username as ‘name’ FROM users
傳回這些資料
值 | 名稱 |
---|---|
1001 | John Smith |
1002 | Jane Doe |
1003 | Bobby Tables |
Redash 的下拉式清單小工具會如下所示

但是當 Redash 執行查詢時,傳遞到資料庫的值會是 1001、1002 或 1003。
序列化多重選取
下拉式清單也可以序列化以允許多重選取。只需切換允許多個值選項,並選擇是否要用單引號或雙引號將參數包起來。

在您的查詢中,變更您的 WHERE
子句以使用 IN
關鍵字。
SELECT ...
FROM ...
WHERE field IN ( {{ Multi Select Parameter }} )
參數多重選擇小工具可讓您將額外的值傳遞到資料庫。

常見問題
我可以在單一查詢中重複使用相同的參數嗎?
當然!只需在大括號中使用相同的識別碼即可。在這個範例中
SELECT {{org_id}}, count(0)
FROM queries
WHERE org_id = {{org_id}}
我們使用了兩次 {{org_id}}
參數。
我可以在單一查詢中使用多個參數嗎?
當然,只需為每個參數使用唯一的名稱即可。在這個範例中
SELECT count(0)
FROM queries
WHERE org_id = {{org_id}} AND created_at > '{{start_date}}'
我們使用了兩個參數:{{org_id}}
和 {{start_date}}
。
我可以在嵌入式視覺化和共用儀表板中使用參數嗎?
可以,但有一個例外。如果查詢使用文字類型參數,則無法嵌入,因為文字參數無法防止 SQL 注入。所有其他類型的查詢參數都可以在嵌入式視覺化和儀表板中安全使用。
參數類型 | 可安全嵌入? |
---|---|
文字 | 否 |
數字 | 是 |
下拉式清單 | 是 |
以查詢為基礎的下拉式清單 | 是 |
日期 | 是 |
日期和時間 | 是 |
日期和時間(含秒) | 是 |
日期範圍 | 是 |
日期和時間範圍 | 是 |
日期和時間範圍(含秒) | 是 |
在 Redash 第 8 版之前,不允許在嵌入式視覺化中使用參數。在未來版本中,將允許所有類型的參數在公開共用的儀表板和視覺化中使用。我們的託管平台始終執行最新的可用應用程式版本。
我可以透過 URL 變更參數值嗎?
可以。每個參數都會出現在 URL 查詢字串中,並以 p_
作為前綴。ID 為 1234
的查詢和以下查詢文字
SELECT * FROM table WHERE field = {{param}}
將會有如下的連結:https://app.redash.io/<slug>/queries/1234?p_param=100
這對於連結查詢和儀表板非常有用。
儀表板上的參數映射
查詢參數也可以在儀表板中進行強大的控制。您可以將不同小工具上的參數連結在一起、設定靜態參數值,或為每個小工具個別選擇數值。
當新增依賴參數值的儀表板小工具時,您可以選擇您想要的參數映射。底層查詢中的每個參數都會出現在「參數」列表中。

⋮
),然後點擊「編輯參數」來存取參數映射介面。-
標題是您參數的顯示名稱,將會顯示在儀表板上的數值選擇器旁邊。預設為參數關鍵字(請參閱下一個項目符號)。點擊鉛筆圖示來編輯它。請注意,靜態儀表板參數不會顯示標題,因為數值選擇器是隱藏的。如果您選擇「
靜態值
」作為您的「數值來源」,則「標題」欄位將會變灰。 -
關鍵字是此參數在底層查詢中的字串文字。如果您的儀表板未傳回預期的結果,這對於除錯非常有用。
-
預設值是如果未指定其他值,Redash 將會使用的值。若要從查詢畫面變更此值,請使用您想要的參數值執行查詢,然後點擊「儲存」按鈕。
-
數值來源是您選擇偏好映射的位置。點擊鉛筆圖示以開啟映射器設定。
數值來源選項
-
新的儀表板參數:儀表板參數可讓您在儀表板上的某個位置設定參數值,並將其映射到多個視覺化圖表。使用此選項來建立新的儀表板層級參數。
-
現有的儀表板參數:如果您已設定儀表板層級參數,請使用此選項將其映射到特定的查詢參數。您需要指定將要映射的現有儀表板參數。
-
小工具參數:此選項將在您的儀表板小工具內顯示數值選擇器。這對於小工具之間不共用的單次參數非常有用。
-
靜態值:選擇此選項將讓您為此小工具選擇靜態值,而不論其他小工具上使用的值為何。靜態映射的參數值不會在儀表板上的任何位置顯示數值選擇器,這樣會更加簡潔。這可讓您利用查詢參數的彈性,而不會在某些參數不預期經常變更時,讓儀表板上的使用者介面變得雜亂。