一次SQL沒有指定字段類型導致的錯誤

1:表結構如下

CREATE TABLE `t_hft_dict` (

  `iAutoID` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  `sType` varchar(120) NOT NULL COMMENT '字段的類別',
  `sKey` varchar(320) NOT NULL COMMENT '字典的key',
  `sValue` text COMMENT '字典的值',
  `iOrder` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '排序',
  `sDesc` varchar(250) DEFAULT NULL COMMENT '描述',
  `iStatus` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '狀態',
  `iCreateTime` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '創建時間',
  `iUpdateTime` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新時間',
  `iDeleteTime` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '刪除時間',
  PRIMARY KEY (`iAutoID`),
  UNIQUE KEY `idu_goup_key` (`sType`,`sKey`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=483 DEFAULT CHARSET=utf8;

第一次提交SQL 插入兩條數據

INSERT INTO t_hft_dict (`sType`, `sValue`, `sKey`, `iOrder`, `sDesc`, `iStatus`, `iCreateTime`, `iUpdateTime`) VALUES ('hft_user_quarters_mapping', '{"3_1":{"name":"銷售+新房","role":[{"id":"37","name":"駐場"}],"product":[{"id":"10","name":"駐場訂單"},{"id":"55","name":"新房KA拓展"},{"id":"56","name":"新房項目拓展"},{"id":"57","name":"新房項目維護"}],"business":{"id":"1","name":"新房業務"}}}','3_1',0,'崗位與業務線和角色映射關係(sKey:崗位_業務線)',1,'1510284556','1510284556');

INSERT INTO t_hft_dict (`sType`, `sValue`, `sKey`, `iOrder`, `sDesc`, `iStatus`, `iCreateTime`, `iUpdateTime`) VALUES ('hft_user_quarters_mapping', '{"3":{"name":"銷售","role":[{"id":"3","name":"銷售"}],"product":[{"id":"","name":""}],"business":{"id":"","name":""}}}','3',0,'崗位與業務線和角色映射關係(sKey:崗位_業務線)',1,'1510284556','1510284556');

第二次提交SQL:update t_hft_dict set sValue='{"3":{"name":"銷售","role":[{"id":"28","name":"銷售"}],"product":[{"id":"","name":""}],"business":{"id":"","name":""}}}' where sType='hft_user_quarters_mapping' and sKey=3;

思考:更新的數據時幾條:

由於sKey是字符串,而值3沒有用引號引上,導致查詢時 3和3_1兩條數據都被更新了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章