https://avatars.githubusercontent.com/u/6058558

程式狂想筆記

[SQL]比較null不能用等於

在 SQL 中,NULL 代表「未知」或「不存在」的值,它的行為與一般資料型別完全不同,常常是 bug 的來源。 NULL 的特殊性 NULL 不等於任何值,包括它自己 1 2 3 4 SELECT NULL = NULL; -- 結果:NULL(不是 TRUE!) SELECT NULL != NULL; -- 結果:NULL SELECT NULL = 0; -- 結果:NULL SELECT NULL = ''; -- 結果:NULL 這是因為 SQL 採用三值邏輯(Three-Valued Logic):TRUE、FALSE、NULL(UNKNOWN)。任何值與 NULL 比較,結果都是 NULL(UNKNOWN),而非 TRUE 或 FALSE。 正確用法:IS NULL 與 IS NOT NULL 1 2 3 4 5 6 7 8 9 10 11 -- ✅ 正確:查詢 email 為空的使用者 SELECT * FROM users WHERE email IS NULL; -- ✅ 正確:查詢 email 有值的使用者 SELECT * FROM users WHERE email IS NOT NULL; -- ❌ 錯誤:永遠不會回傳任何結果 SELECT * FROM users WHERE email = NULL; -- ❌ 錯誤:永遠不會回傳任何結果 SELECT * FROM users WHERE email !

Raspberry PI Git Webhook...

將應用程式部署到 Raspberry Pi 時,手動 SSH 登入再執行 git pull 的方式既麻煩又容易出錯。透過 GitHub Webhook 搭配內網穿透工具,可以實現每次推送程式碼到 GitHub 時,Raspberry Pi 自動拉取更新並重啟服務的 CI/CD 流程。

Crontab指令打百分比需要跳脫符號

在 crontab 的指令設定中,百分比符號(%)有特殊含義:它會被解釋為換行字元(newline)。如果你的指令中有 %(例如 date "+%Y-%m-%d"),必須用反斜線跳脫,否則 cron 會靜默地執行錯誤,甚至不執行任何動作。