在表格中搜尋

瞭解如何使用篩選器和自訂運算式在 SQL 問題和簡單問題中搜尋。現在比以往更輕鬆地在表格中尋找單字或詞組。

將篩選器新增至您的問題可以讓在問題中搜尋文字變得輕而易舉。您可以依照本文中的範例,使用每個 Metabase 安裝隨附的範例資料庫

在問題中搜尋

我們將從按一下「瀏覽資料」按鈕、選取「範例資料庫」並開啟「產品」表格開始。

若要在問題中搜尋,我們使用可自訂的篩選器。我們將按一下「篩選器」按鈕,並在清單中尋找我們要依據篩選的欄。

我們使用「標題」欄。欄名稱旁邊有一個下拉式功能表,目前顯示「」。將會出現一個具有文字篩選器選項的彈出視窗,為我們提供

  • 不為
  • 包含
  • 不包含
  • 為空
  • 不為空
  • 開頭為
  • 結尾為

我們將選取「開頭為」,並在「篩選器側邊欄」上的搜尋方塊中輸入「rustic」。我們將按一下「套用篩選器」以將篩選器新增至我們的問題。

Creating a search widget by adding a filter to a question.

套用篩選器後,我們的問題將僅列出開頭為「rustic」的產品標題。

更新您的搜尋篩選器

現在我們已新增篩選器,我們的搜尋篩選器位於表格頂端。我們可以按一下篩選器描述,其顯示「標題開頭為 rustic」。

Close up picture of the question search filter.

在彈出視窗中,我們可以使用文字方塊取代目前的搜尋詞,例如使用「Marble」。我們也可以透過按一下目前顯示「開頭為」的下拉式功能表,變更 Widget 篩選結果的方式,例如將我們的文字篩選器選項變更為「包含」。我們將搜尋 Widget 從「標題開頭為 rustic」更新為「標題包含 Marble」,並讓搜尋區分大小寫。

Using the search widget to change what we

搜尋多個值

Metabase 中的篩選器 Widget 可讓您同時搜尋多個值。假設我們想要依據包含「Marble」、「Clock」或「Wallet」的產品篩選結果。我們可以再次按一下篩選器描述,輸入「Clock」,然後輸入逗號(這告訴 Metabase「我已完成輸入值,現在將輸入另一個值」),然後輸入「Wallet」

Search with a filter widget

當您在「包含」篩選器(以及「開頭為」和「結尾為」)中使用多個值時,Metabase 將搜尋包含這些值中任何一個的記錄(隱含 Or,而非 And)。如果您想要尋找包含這些值全部的記錄(例如包含「Marble」「Clock」的記錄),則需要為每個值新增一個篩選器。或者,您可以使用自訂運算式。

使用自訂運算式進行進階搜尋

自訂運算式是一種使用數字或文字進行進階查詢的方式。假設我們想要依據屬於 rustic 或 clocks 的產品篩選結果。因此,我們想要標題開頭為「Rustic」或結尾為「Clock」的記錄。

讓我們建立自訂運算式,方法是再次按一下篩選器以進行編輯,按一下「<」,然後在側邊欄底部選取「自訂運算式」。

如果我們開始輸入,我們將看到彈出視窗,其中包含我們可以在自訂運算式中使用的建議。

The Custom Expression sidebar is open and an expression beginning with `contains()` is visible.

我們將撰寫如下的基本查詢:(startsWith([Title] , "Rustic"))。

  • startsWith是我們想要的篩選器類型
  • [Title]是要篩選的欄
  • "Rustic"是要篩選的詞彙

我們將新增一個空格並輸入 OR,然後我們將撰寫另一個文字搜尋函數:OR endsWith([Title] , "Clock"),然後按一下「完成」。

Creating a Custom Expression that searches through the Title column of the Products table for the words

以外來鍵搜尋

我們可以使用外來鍵,根據連線表格中的資料搜尋表格。若要能夠以外來鍵搜尋字串以及 ID 號碼,管理員需要變更資料模型設定設定。從主要的 Metabase 導覽列中,按一下齒輪圖示以開啟「管理員面板」,按一下「資料模型」索引標籤,然後選取「範例資料庫」。接下來,按一下「評論」表格,然後按一下「Product_ID」欄位旁邊的齒輪圖示

在我們的範例中,「Product_ID」欄設定為外來鍵,具有搜尋方塊篩選器設定,以及「標題」的顯示值。這樣一來,當我們篩選「Product_ID」時,我們可以依標題而非 ID 號碼篩選,且表格將顯示每個產品的標題而非其 ID 號碼。

In the data model for the Product_ID field in the Reviews table, the admin has saved the Filtering on this field settings as Search box and the Display values as Title.

您可以在我們的文件中深入瞭解編輯中繼資料。

設定中繼資料後,我們就能夠依產品標題篩選評論

  1. 按一下「瀏覽 > 資料庫」按鈕,選取「範例資料庫」,然後開啟「評論」表格。
  2. 按一下「篩選器」按鈕。這將開啟篩選器編輯器,其中包含「評論」和「產品」表格中的所有欄
  3. 在「篩選器」編輯器的側邊欄中選取「產品」表格。
  4. 尋找「標題」欄位,輸入「Practical」,然後在下拉式功能表中選取其中一個值,例如「Practical Bronze Computer」。

Creating a search widget for the Reviews table using the title of the product instead of the ID.

將搜尋 Widget 新增至您的 SQL 問題

在一般資料庫中,我們需要為每個搜尋詞彙製作新的 SQL 查詢,但 Metabase 讓搜尋我們的資料庫變得容易,即使在使用 SQL 查詢時也是如此。我們只需要在查詢的 WHERE 子句中插入變數即可。

在主要導覽列的右上角,我們將按一下鉛筆圖示以撰寫 SQL。

SELECT *
FROM REVIEWS
[[WHERE UPPER(Body) LIKE UPPER(CONCAT('%', {{search_term}}, '%'))]]

一旦我們開始在大括號 {{}} 內輸入,搜尋列將會出現在 SQL 輸入區域上方,Metabase 將會彈出變數側邊欄。

The SQL Editor with the example query typed into the SQL text area.

SQL 問題分解

以簡明的英文來說,此 SQL 查詢表示:「顯示評論內文包含搜尋詞彙的評論,無論兩者是否以相同方式大寫。」

讓我們分解第三行中的元素

  • [[ ]] 括號讓篩選器成為選用項目。如果未提供搜尋詞彙給變數,則查詢將傳回未篩選的列。
  • WHERE 篩選結果。
  • UPPER() 將搜尋的文字和搜尋詞彙都大寫,因此即使大小寫有差異,它們也會相符。
  • BODY 是要篩選的欄。
  • LIKE 搜尋模式。
  • CONCAT()(concatenate 的縮寫)合併字串。
  • '%' 百分比符號是萬用字元。如果放在搜尋詞彙之前,則可以在詞彙之前加上額外文字。以 % 包裹搜尋詞彙,即使詞彙被文字包圍也會搜尋該詞彙。
  • {{ }} 雙大括號包裹變數。
  • search_term 篩選器 Widget 將以文字提供的變數,以供搜尋。

變數側邊欄

變數類型已選取「文字」,但還有其他數個選項

  • 數字
  • 日期
  • 欄位篩選器

篩選器可能既複雜又非常實用;請查看篩選器 Widget欄位篩選器,以瞭解它們可以提供有價值深入分析的許多方式。

在「變數類型」下方是「篩選器 Widget 標籤」,其會自動使用我們在大括號之間輸入的文字作為我們的標籤。

如需關於輸入支援搜尋 Widget 的 SQL 查詢的其他範例和建議,請按一下側邊欄頂端的「說明」索引標籤。

The variable type options, creating a new placeholder for the widget label, and scrolling through the

下一步:清理與格式化文字

如何使用自訂運算式來清理不一致、非結構化或空白的文字。

下一篇文章