首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL UPDATE 不生效?小心「智能引號」陷阱:單引號 vs 反引號 vs 全形引號

     編輯:MySQL 資料庫相關知識

現象

UPDATE test SET age=5 WHERE 'name'='王莽';  -- 影響行數 0
UPDATE test SET age=5 WHERE name='王莽';    -- 成功
-- 圖形工具生成:
UPDATE `web`.`test` SET `age`='20' WHERE `test`.`name`='王莽' LIMIT 1;

根因

  • 'name'(全形/智能單引號)被視為字符串常量,而非列名,條件恒為假
  • name 或 `name`(反引號)才是合法標識符
  • 圖形工具生成的反引號 ` 是正確的 MySQL 標識符引用符

最佳實踐

  • 代碼中列名、表名統一用 反引號 `col` 包裹
  • 字符串值用 單引號 'val'
  • 避免複製 Word/網頁中的「智能引號」(‘ ’ “ ”)
  • IDE 設置自動轉換或提示
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved