好友
阅读权限20
听众
最后登录1970-1-1
|
本帖最后由 as614001 于 2021-8-23 18:46 编辑
这样的一个表
CREATE TABLE 't_user' (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(18) NOT NULL ,
`bigname` varchar(18) NOT NULL ,
`type` varchar(18) NOT NULL unique,
`work` TEXT NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;
目前使用的sql语句,没达到想的效果:
`INSERT into t_user(username,bigname,type,work)values('admin12334','a','eclp','1234')
on DUPLICATE key UPDATE work=values(`work`);
想达到的效果是,根据 username bigname type 三个字段做一个一致有就更新,一致没就插入、
如 当前已经有这个数据
'admin12334','a','eclp','1234'
如果插入数据 'admin12334','a','eclp','456789' 那么就更新了这行。
如果插入数据 'admin12334','a','eclp2','1234' 那么就插入一行。
如果插入数据 'admin12334','a1','eclp','1234' 那么就插入一行。
如果插入数据 'admin12336','a','eclp','1234' 那么就插入一行。
如果插入数据 '1admin12334','a1','eclp22','12343' 那么就插入一行。
解决方法
username bigname type 都做唯一索引。
`INSERT into t_user(username,bigname,type,work)values('admin12334','a','eclp','1234')
on DUPLICATE key UPDATE work=values(`work`), username=values(`username`), bigname=values(`bigname`), type=values(`type`);
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|