前言
跟上一篇一樣
我需要找Array 中
重複欄位
並且將數量加總
但這是用SQLite來實作
可是上次實作的語法
跟MySQL不太一樣
如何實踐我複雜的搜尋
而且我去讀原來git
原來他其實也支援原生語法
那就可以來試試了
SQLite.swift 語法
SELECT 全部
for user in (try? db?.prepare(users))!! {
}
如果要特殊複雜的話
let query = users.select(email) // SELECT "email" FROM "users"
.filter(name != nil) // WHERE "name" IS NOT NULL
.order(email.desc, name) // ORDER BY "email" DESC, "name"
.limit(5, offset: 1) // LIMIT 5 OFFSET 1
雖然好像可以這樣實作
但還是跟SQL語法差距很多
不習慣
還好我去讀文件
可以支持就語法
SQLite.swift 使用 SQL語法
我們這邊就要SQL語法來實作
相同產品的價格加總
SELECT 簡單使用
原生的寫法SELECT
目前的架構
for user in (try? db?.prepare("SELECT DISTINCT product ,price FROM stock"))!! {
print(user)
}
就可以拿到product ,price
每個Array中的
[大海螺, 900]
[大海螺, 99]
[歐拉, 250]
[美好, 250]
但大海螺有同樣的
應該讓兩個加總才對
所以改一下SELECT語法
SUM是加總某的欄位
GROUP BY 需檢查重複欄位
for user in (try? db?.prepare("SELECT product , price,SUM(price) FROM stock GROUP BY product"))!! {
print(user)
}
結果如下
[大海螺, 990]
[歐拉, 250]
[美好, 250]
效果很滿意 讚讚