欄位與條件
最後更新
本頁說明如何以 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)。