ON DUPLICATE KEY UPDATE的用法
比如需执行:
INSERT INTO user(id,name,age) VALUES(1,'sys',20) ON DUPLICATE KEY UPDATE age = age + 1;
当id是主键时,且user中没有id为1的值,上面的sql就会变成如下:
INSERT INTO user(id,name,age) VALUES(1,'sys',20)
当id是主键时,且user中有id为1的值,上面的sql就会变成如下:
UPDATE user SET age = age + 1 WHERE id=1;
当id不是主键时,上面的sql就会变成如下:
INSERT INTO user(id,name,age) VALUES(1,'sys',20);
*合理利用ON DUPLICATE KEY UPDATE来判断当前是新增还是修改,这个是mysql的特殊语法。
正在加载评论...
相关文章
栏目列表
推荐阅读
- mysql给id添加自增
- mysql的分页查询sql语句
- Mysql数据库利用Navicat工具导入sql数据表文件图解
- Mysql命令导入数据库文件
- mysqldump: Got error: 1449: The user specified as a definer ('root'@'%') does not exist when using LOCK TABLES
- MySQL将指定数据有逗号分隔的,拆分成多条(即行转列)
- mysql查询今天,昨天,本周,上周,本月,上月,本季度,上季度,本年,去年的数据
- mysql8.0在用group by分组报错ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY
- sql用COALESCE函数将查询为空的数据设置为0
- mysql中,命令导出(备份)数据库成sql文件
- mysql中用floor计算除法取整,整数除法
- mysql对表进行新增,删除,修改字段的sql语句
- mysql中的除法运算通过floor取整
- mysql用navicat导出数据库报1577错误记录
- java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/database
- Unable to connect to remote host. Catalog download has failed.
- 绿色免安装版mysql下载地址及环境变量设置图解
- You must reset your password using ALTER USER statement before executing this statement.
- 在sql做order by排序时,又让特定的数据排在最前面
- mysql做时间排序时查询很慢,给时间字段添加索引后查询很快