SQL MAX()函数处理字符型字段
2024-09-05 22:17:46
假设有数据库表student,表中有字段studentCode,它是字符型的,现有需求:“每次向student表插入数据时,自动生成studentCode字段的值”
如果你的实现思路是这样的:
if(student表为空){
待插入数据studentCode字段的值设置为1;
}else{
查询出表中studentCode字段的最大值max;
待插入数据studentCode字段的值设置为max+1;
}
将数据插入student表;
你可能使用以下SQL语句查询studentCode字段的最大值:
SELECT MAX(studentCode) FROM `student`
测试一下程序,试着插入几条数据:
插入第1条数据:studentCode == 1
插入第2条数据:studentCode == 2
插入第3条数据:studentCode == 3
插入第4条数据:studentCode == 4
插入第5条数据:studentCode == 5
插入第6条数据:studentCode == 6
插入第7条数据:studentCode == 7
插入第8条数据:studentCode == 8
插入第9条数据:studentCode == 9
插入第10条数据:studentCode == 10
插入第11条数据:studentCode == 10
插入第12条数据:studentCode == 10
插入第13条数据:studentCode == 10
最开始插入前10条数据studentCode字段的值还是正常的,可是从第11条数据开始,为什么studentCode字段的值全不变了呢?
原因就是studentCode字段是字符型的,从指定第11条数据的插入操作开始,SELECT MAX(studentCode) FROM `student` 的结果将永远是9,所以就导致了最终设置的studentCode的值永远是10.
解决办法:类型转换
SELECT MAX(CONVERT(studentCode,INT)) FROM `student`
最新文章
- Junit mockito解耦合测试
- 基于Node的PetShop,oauth2认证RESTful API
- RichTextBox文字处理控件属性介绍
- 对于PKI(公钥基础结构)及证书服务的通俗理解
- 设计模式:适配器模式(Adapter)
- kafka介绍和集群环境搭建
- WordPress 实用SEO插件总结
- Linux Kernel 2.6.28 以上有BUG,系统运行第208.5天down机
- 细说WPF数据绑定
- node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装
- Mybatis插件原理分析(三)分页插件
- SQL Server 一张图让你秒懂联合表查询
- Codeforces 979E Kuro and Topological Parity - 动态规划 - 组合数学
- Codeforces 987E Petr and Permutations(数组的置换与复原 、结论)
- 【POI每日题解 #6】KRA-The Disks
- Java 5- Java 修饰符
- 使用nohup后台执行ftp传输命令
- CSS transform中的rotate的旋转中心怎么设置
- Thinkphp CURD中的where方法
- Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.threadpool.ThreadPool
热门文章
- 【iOS知识学习】_int、NSInteger、NSUInteger、NSNumber的差别和联系
- H3C路由器Telnet服务配置命令(续)
- 虎牙在全球 DNS 秒级生效上的实践
- centos6 名字服务dnsmasq配置
- Python3:ImportError: No module named 'compiler.ast'
- 分布式TensorFlow集群local server使用详解
- linux用户权限管理, chmod, ln
- HDU 1071
- linux常用命令速记
- java 使用反射调用方法