在 Navicat for MySQL、PostgreSQL、SQLite、MariaDB 和 Navicat Premium 的非 Essentials 版本中,查詢建立工具是一個以視覺化方式建立和編輯查詢的工具。在第 1 部分中,我們使用它來編寫查詢以得到在指定年份發佈的電影中出現過的演員的清單。第 2 部分是關於欄位選取。今天的文章將概述如何使用 Navicat Premium 查詢建立工具在 SELECT 查詢加入 WHERE 準則。
關於 Sakila 範例資料庫
與第 1 部分和第 2 部分一樣,我們今天在此構建的查詢將在Sakila 範例資料庫執行。它包含許多以電影業為主題的資料表,涵蓋了演員和電影製片廠以至影碟出租店的所有內容。如需下載和安裝 Sakila 資料庫的說明,請參閱Generating Reports on MySQL Data(產生 MySQL 資料的報表) 教學。
使用 WHERE 子句
WHERE 子句是 SELECT 查詢的一部分,它會根據一組條件準則篩選結果。透過指定我們感興趣的記錄子集來減少傳回的列數是非常有用的。例如,從第 1 部分取得的查詢,它產生了在指定年份發佈的電影中出現過的演員的清單,但仍然傳回了差不多一千列記錄。有一種方法可以進一步限制傳回的列數,就是令查詢只包含我們想要的某些演員資訊。
將以下 SQL 加到 Navicat Premium 查詢編輯器中,然後按一下「查詢建立工具」按鈕以在查詢建立工具中顯示它:
SELECT film.title, film.film_id, film.release_year, concat('$', film_list.price) AS price, film_list.actors FROM film INNER JOIN film_list ON film.film_id = film_list.FID
除了 WHERE 子句,你還會看到「<按這裡加入條件>」標籤。在查詢建立工具中,「<...>」括號中的所有標籤都是可以點選的,並會開啟特定內容的清單和/或編輯器。按一下「<按這裡加入條件>」標籤會將文字變為「<--> = <-->」運算式。它實際上是三個不同的可以點選區域:
- 左邊欄位或運算式:「<-->」
- 比較運算子:「=」
- 右邊欄位或運算式:「<-->」
就像手寫查詢一樣,我們繼續從左到右填寫運算式。
我們可以使用「Like」運算式搜尋 actors 欄位。按一下等號(「=」)左邊的「<-->」標籤,然後從彈出對話方塊的欄位清單索引標籤中選取 film_list.actor(它在最後):
現在,按一下等號(「=」)。這將開啟一個可供選擇的比較運算子清單。選取「Like」運算子:
接下來,我們輸入我們正在尋找的演員。按一下等號(「=」)右邊的「<-->」標籤,然後在「編輯」索引標籤中輸入「'%GENE HOPKINS%'」(不具「」引號):
設定了 WHERE 準則後,按一下「查詢建立工具」的「確定」按鈕以關閉對話方塊。你將看到「WHERE film_list.actors LIKE '%GENE HOPKINS%'」行已加到查詢編輯器中的 SELECT 語句。
執行查詢並確認在所有 22 筆記錄中 GENE HOPKINS 是電影的演員之一: