在表格中搜尋
瞭解如何使用篩選器和自訂運算式在 SQL 問題和簡單問題中搜尋。現在比以往更輕鬆地在表格中尋找單字或詞組。
將篩選器新增至您的問題可以讓在問題中搜尋文字變得輕而易舉。您可以依照本文中的範例,使用每個 Metabase 安裝隨附的範例資料庫。
在問題中搜尋
我們將從按一下「瀏覽資料」按鈕、選取「範例資料庫
」並開啟「產品
」表格開始。
若要在問題中搜尋,我們使用可自訂的篩選器。我們將按一下「篩選器」按鈕,並在清單中尋找我們要依據篩選的欄。
我們使用「標題
」欄。欄名稱旁邊有一個下拉式功能表,目前顯示「為
」。將會出現一個具有文字篩選器選項的彈出視窗,為我們提供
為
不為
包含
不包含
為空
不為空
開頭為
結尾為
我們將選取「開頭為
」,並在「篩選器側邊欄」上的搜尋方塊中輸入「rustic」。我們將按一下「套用篩選器」以將篩選器新增至我們的問題。
套用篩選器後,我們的問題將僅列出開頭為「rustic」的產品標題。
更新您的搜尋篩選器
現在我們已新增篩選器,我們的搜尋篩選器位於表格頂端。我們可以按一下篩選器描述,其顯示「標題開頭為 rustic
」。
在彈出視窗中,我們可以使用文字方塊取代目前的搜尋詞,例如使用「Marble」。我們也可以透過按一下目前顯示「開頭為
」的下拉式功能表,變更 Widget 篩選結果的方式,例如將我們的文字篩選器選項變更為「包含
」。我們將搜尋 Widget 從「標題開頭為 rustic
」更新為「標題包含 Marble
」,並讓搜尋區分大小寫。
搜尋多個值
Metabase 中的篩選器 Widget 可讓您同時搜尋多個值。假設我們想要依據包含「Marble」、「Clock」或「Wallet」的產品篩選結果。我們可以再次按一下篩選器描述,輸入「Clock」,然後輸入逗號(這告訴 Metabase「我已完成輸入值,現在將輸入另一個值」),然後輸入「Wallet」
當您在「包含」篩選器(以及「開頭為」和「結尾為」)中使用多個值時,Metabase 將搜尋包含這些值中任何一個的記錄(隱含 Or
,而非 And
)。如果您想要尋找包含這些值全部的記錄(例如包含「Marble」和「Clock」的記錄),則需要為每個值新增一個篩選器。或者,您可以使用自訂運算式。
使用自訂運算式進行進階搜尋
自訂運算式是一種使用數字或文字進行進階查詢的方式。假設我們想要依據屬於 rustic 或 clocks 的產品篩選結果。因此,我們想要標題開頭為「Rustic」或結尾為「Clock」的記錄。
讓我們建立自訂運算式,方法是再次按一下篩選器以進行編輯,按一下「<」,然後在側邊欄底部選取「自訂運算式」。
如果我們開始輸入,我們將看到彈出視窗,其中包含我們可以在自訂運算式中使用的建議。
我們將撰寫如下的基本查詢:(startsWith([Title] , "Rustic")
)。
startsWith
是我們想要的篩選器類型[Title]
是要篩選的欄"Rustic"
是要篩選的詞彙
我們將新增一個空格並輸入 OR
,然後我們將撰寫另一個文字搜尋函數:OR endsWith([Title] , "Clock")
,然後按一下「完成」。
以外來鍵搜尋
我們可以使用外來鍵,根據連線表格中的資料搜尋表格。若要能夠以外來鍵搜尋字串以及 ID 號碼,管理員需要變更資料模型設定設定。從主要的 Metabase 導覽列中,按一下齒輪圖示以開啟「管理員面板」,按一下「資料模型」索引標籤,然後選取「範例資料庫
」。接下來,按一下「評論
」表格,然後按一下「Product_ID
」欄位旁邊的齒輪圖示。
在我們的範例中,「Product_ID
」欄設定為外來鍵,具有搜尋方塊
篩選器設定,以及「標題
」的顯示值。這樣一來,當我們篩選「Product_ID
」時,我們可以依標題而非 ID 號碼篩選,且表格將顯示每個產品的標題而非其 ID 號碼。
您可以在我們的文件中深入瞭解編輯中繼資料。
設定中繼資料後,我們就能夠依產品標題篩選評論
- 按一下「瀏覽 > 資料庫」按鈕,選取「
範例資料庫
」,然後開啟「評論
」表格。 - 按一下「篩選器」按鈕。這將開啟篩選器編輯器,其中包含「
評論
」和「產品
」表格中的所有欄 - 在「篩選器」編輯器的側邊欄中選取「
產品
」表格。 - 尋找「
標題
」欄位,輸入「Practical」,然後在下拉式功能表中選取其中一個值,例如「Practical Bronze Computer」。
將搜尋 Widget 新增至您的 SQL 問題
在一般資料庫中,我們需要為每個搜尋詞彙製作新的 SQL 查詢,但 Metabase 讓搜尋我們的資料庫變得容易,即使在使用 SQL 查詢時也是如此。我們只需要在查詢的 WHERE
子句中插入變數即可。
在主要導覽列的右上角,我們將按一下鉛筆圖示以撰寫 SQL。
SELECT *
FROM REVIEWS
[[WHERE UPPER(Body) LIKE UPPER(CONCAT('%', {{search_term}}, '%'))]]
一旦我們開始在大括號 {{}}
內輸入,搜尋列將會出現在 SQL 輸入區域上方,Metabase 將會彈出變數側邊欄。
SQL 問題分解
以簡明的英文來說,此 SQL 查詢表示:「顯示評論內文包含搜尋詞彙的評論,無論兩者是否以相同方式大寫。」
讓我們分解第三行中的元素
[[ ]]
括號讓篩選器成為選用項目。如果未提供搜尋詞彙給變數,則查詢將傳回未篩選的列。WHERE
篩選結果。UPPER()
將搜尋的文字和搜尋詞彙都大寫,因此即使大小寫有差異,它們也會相符。BODY
是要篩選的欄。LIKE
搜尋模式。CONCAT()
(concatenate 的縮寫)合併字串。'%'
百分比符號是萬用字元。如果放在搜尋詞彙之前,則可以在詞彙之前加上額外文字。以%
包裹搜尋詞彙,即使詞彙被文字包圍也會搜尋該詞彙。{{ }}
雙大括號包裹變數。search_term
篩選器 Widget 將以文字提供的變數,以供搜尋。
變數側邊欄
變數類型已選取「文字
」,但還有其他數個選項
- 數字
- 日期
- 欄位篩選器
篩選器可能既複雜又非常實用;請查看篩選器 Widget和欄位篩選器,以瞭解它們可以提供有價值深入分析的許多方式。
在「變數類型
」下方是「篩選器 Widget 標籤
」,其會自動使用我們在大括號之間輸入的文字作為我們的標籤。
如需關於輸入支援搜尋 Widget 的 SQL 查詢的其他範例和建議,請按一下側邊欄頂端的「說明」索引標籤。
下一步:清理與格式化文字
如何使用自訂運算式來清理不一致、非結構化或空白的文字。