标签
MySQL訂單金額加總翻倍:兩張明細表先彙總再JOIN
訂單報表原本對得上,加入商品數量與付款金額後,營業額卻突然變多。這時先別改訂單資料,也別急著在SUM裡加DISTINCT。常見原因是同一筆訂單有多件商品、也有多...
MySQL upsert觸發更新:先看唯一鍵
會員匯入原本想新增一筆資料,結果卻改了舊會員的名稱。檢查SQL時不能只看新傳入的id,也要看資料表有哪些唯一鍵。INSERT ... ON DUPLICATE ...
MySQL加欄位後ROLLBACK沒撤回:DDL隱式提交的邊界
測試腳本先START TRANSACTION,再插入一筆資料、加一個欄位,最後ROLLBACK。你以為全部會撤回,結果資料與欄位都還在。先查中間有沒有造成隱式提...
MySQL查整天少了晚間資料:DATETIME用半開區間
網站報表選了某一天,結果只出現零點資料;把結束時間改到23:59:59,又少了最後一秒裡的小數時間。查詢先別怪資料沒寫入:DATETIME欄位包含時間,而日期輸...
MySQL UNIQUE仍能插入多筆NULL:缺值與重複值怎麼分
優惠碼欄位加了UNIQUE,資料表卻還能存入兩筆NULL。這不是索引沒生效:在MySQL裡,可空欄位的唯一索引允許多個NULL。先確認你想防止的是「重複已填寫的...
MySQL GROUP BY選名字報錯:別讓非分組欄位隨機取值
分類列表想同時顯示每類筆數與最新一筆名稱,SQL卻回傳1055錯誤。別先關掉ONLY_FULL_GROUP_BY。這個錯誤通常是在問你:同一組裡有多個名稱,結果...
MySQL翻頁同分資料順序變了:ORDER BY要加唯一鍵
網站列表依分數排序,翻到下一頁卻看到重複項目。先確認查詢有沒有把「同分時誰先顯示」寫清楚。ORDER BY score DESC只決定分數不同的先後;四筆資料都...
MySQL NOT IN突然查不到資料:NULL與NOT EXISTS的差別
名單排除查詢本來正常,封鎖表多了一筆資料後,結果突然一列都沒有。你可能寫了WHERE id NOT IN子查詢,預期把封鎖的編號移除;真正改變結果的,卻是子查詢...
MySQL LEFT JOIN少了資料:右表條件放ON還是WHERE
會員列表原本有三個人,接上訂單表後只剩一個。SQL明明寫了 LEFT JOIN,為什麼沒訂單的會員還是消失?先看右表條件寫在哪裡。若先接上所有訂單,再用 WHE...
MySQL資料更新被另一個交易卡住:查鎖等待與短交易
後台按下保存,一直轉圈;資料庫的 UPDATE 沒有立刻回報錯誤,也沒有完成。先確認它是否等待另一個交易持有的鎖。若同一列被尚未結束的交易更新,後來的更新可能需...
MySQL刪除前怎麼確認只中目標列:先用交易與SELECT核範圍
整理網站草稿,最怕 DELETE 的條件少了一項,把別人的資料或已發布內容一起刪掉。先把要刪的範圍寫成 SELECT,檢查實際 ID、狀態與日期,再在支援交易的...
MySQL查不到空白資料?分清NULL、空字串與0
整理網站資料時,畫面看起來都是空白,MySQL查詢卻只找出其中一部分。常見原因是同一欄位裡混了NULL與空字串;還有人把0當成沒填,讓原本有效的值一起消失。 先...
- 1
- 2
