zoukankan      html  css  js  c++  java
  • SQL MAX()函数处理字符型字段

      假设有数据库表student,表中有字段studentCode,它是字符型的,现有需求:“每次向student表插入数据时,自动生成studentCode字段的值”


      如果你的实现思路是这样的:

    if(student表为空){
        待插入数据studentCode字段的值设置为1;
    }else{
        查询出表中studentCode字段的最大值max;
        待插入数据studentCode字段的值设置为max+1;
    }
    将数据插入student表;

      你可能使用以下SQL语句查询studentCode字段的最大值:

    SELECT MAX(studentCode) FROM `student`

      测试一下程序,试着插入几条数据:

     1 插入第1条数据:studentCode == 1
     2 插入第2条数据:studentCode == 2
     3 插入第3条数据:studentCode == 3
     4 插入第4条数据:studentCode == 4
     5 插入第5条数据:studentCode == 5
     6 插入第6条数据:studentCode == 6
     7 插入第7条数据:studentCode == 7
     8 插入第8条数据:studentCode == 8
     9 插入第9条数据:studentCode == 9
    10 插入第10条数据:studentCode == 10
    11 插入第11条数据:studentCode == 10
    12 插入第12条数据:studentCode == 10
    13 插入第13条数据:studentCode == 10

      最开始插入前10条数据studentCode字段的值还是正常的,可是从第11条数据开始,为什么studentCode字段的值全不变了呢?

      原因就是studentCode字段是字符型的,从指定第11条数据的插入操作开始,SELECT MAX(studentCode) FROM `student` 的结果将永远是9,所以就导致了最终设置的studentCode的值永远是10.

      解决办法:类型转换

    1 SELECT MAX(CONVERT(studentCode,INT)) FROM `student`
  • 相关阅读:
    hdu 5059 判断数字表示方式以及范围合法(int型之内)
    hdu1024 最大m子序列和
    POJ 1573 Robot Motion 模拟 难度:0
    POJ 2632 Crashing Robots 模拟 难度:0
    POJ 1068 Parencodings 模拟 难度:0
    ncs安装及初次运行
    POJ 1328 Radar Installation 贪心 难度:1
    POJ 3094 Quicksum 难度:0
    django.test.client 使用随记
    POJ 2255 Tree Recovery 树的遍历,分治 难度:0
  • 原文地址:https://www.cnblogs.com/XiaoZhengYu/p/11774173.html
Copyright © 2011-2022 走看看