欄位與條件

最後更新

本頁說明如何以 select() 指定回傳欄位、以 where() 篩選資料列,以及兩者產生的 SQL。

select()

MySQLPool.table("users").select("id", "name", "email");
// SELECT `id`, `name`, `email` FROM `users`
規則 範例輸入 產生的 SQL
未呼叫或不帶參數 — *
一般欄位加反引號 "name" `name`
含 .、(、) 的欄位原樣輸出 "users.email"、"COUNT(*) AS c" users.email、COUNT(*) AS c

where()

每次呼叫加入一個條件,多個條件以 AND 串接;資料值一律走 ? 佔位符。

寫法 範例 產生的 SQL
兩參數(等值) where("status", "active") `status` = 'active'
三參數(比較) where("age", ">", 18) `age` > 18
LIKE where("name", "LIKE", "Jo") `name` LIKE '%Jo%'(自動前後加 %)
IN where("id", "IN", [1, 2]) `id` IN ('1', '2')(元素轉成字串)
const rows = await MySQLPool
  .table("users")
  .where("status", "active")
  .where("age", ">=", 18)
  .where("name", "LIKE", "John")
  .where("role", "IN", ["admin", "editor"])
  .get();

欄位名規則

欄位名不含 ( 也不含 . 時加反引號;否則原樣輸出,可寫 users.id 或 DATE(created_at)。

相關頁面

EN