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兩條數據都被更新了