mysql中max函数用法(001和005能用mysql中max()比较吗)
本文目录
- 001和005能用mysql中max()比较吗
- 新手求问mysql中函数greatest 与MAX有什么区别
- mysql自定义函数返回三个最大数据
- 在MySQL中用max函数查询出两个相同的最大值如何全部显示
001和005能用mysql中max()比较吗
在数据库中当然是可以对001和005使用聚合函数max()进行大小比较的,但是我们必须要留意文本型数值和数字型数值在比较数值大小时,数据库引擎对不同的字段数据类型其比较的结果可能会有所不同!下面举例说明一下:
比如 10和9,按数字比较大小则 10》9,但是如果按文本比较大小则 ’10’《’9’,因为两个字串比较大小时是从左边第一个字符开始逐个字符进行比较的,一旦分出高低,比较将立即结束不再进行余下比较。’10’开头为1,’9’开头为9首尾字符即可分出大小,这样文本数字’10’就会小于文本数字’9’。我们再来看看001和005,则不论是按数字类型还是按文本类型比较均为前者小于后者,按数字比较的话自然1小于5,若按字串比较,前两位打成平手到第三个字符时就分出了大小。
数据库中字符和字串比较大小的排序规则基本上与我们日常使用的字词典里的排序规则相互吻合,两个字符或字串根据它们在字典中的排序位置我们通常不必依赖电脑运算就可以判断出谁大谁小。
现在我们实测一下使用聚合函数Max()对比文本数据类型字段和数字类型字段的比较结果,以下是SQL实验代码:
drop table if exists t2;
-- 创建测试表t2含文本数据型“数字”字段和数字类型字段
create table t2(id int auto_increment primary key,
charNum varchar(10),digitNum int);
-- 插入测试数据
insert into t2(charNum,digitNum) values
(’001’,1),(’005’,5),(’0010’,10);
-- 查看待测数据
select * from t2;
-- 直接选出文本“数字”字段中的最大值和数字字段中的最大值
select max(charNum) as maxCharNum,
max(digitNum) as maxDigitNum from t2;
-- 将文本“数字”字段转换为数字类型后再选出其最大值,以及直接选出数字字段最大值
select max(convert(charNum,signed)) as maxConvertCharNum,
max(digitNum) as maxDigitNum from t2;
测试截图:
待测数据:
直接对文本和数字两种数据类型字段使用Max()函数的返回结果对比:
我们可以看到直接对文本数据类型字段使用Max函数选出的最大值是“005”而非“0010”
下面是将文本数据类型数字转换为数字数据类型后才使用Max函数的对比结果:
我们可以看到对文本类型字段使用Max函数的最大值已经跟数字数据类型字段的最大值一样了,都是10。
总结:
直接对字符型数据类型字段使用聚合函数Max()、Min()所返回的极值将遵循一般字(词)典对字(词)里设定的排序规则,所选出的最大(小)值不一定是数字意义上的极值,如果需要得出严格数字意义上的极值就必须先进行类型转换,否则得出的结果可能会与期望值有出入。
新手求问mysql中函数greatest 与MAX有什么区别
greatest 求的是某几列的最大值,横向求最大max(a) 是给纵向求最大。greatest (a,b,c,d,d)max(a)
mysql自定义函数返回三个最大数据
mysql自定义函数返回三个最大数据是avg函数:求某列数据的平均值,能对数值类型的列计算selectavg成绩fromscore。表示对score表中的成绩列求平均值,即求平均成绩。求平均成绩max函数:求某列数据的最大值selectmax成绩fromscore。表示求score表中的成绩列的最大值min函数:求某列数据的最小值。自定义函数是一种对MySQL扩展的途径,其用法与内置函数相同。参数:不一定要有,返回值:一定要有。
在MySQL中用max函数查询出两个相同的最大值如何全部显示
楼主可以参考下列例句:列出所有年龄最大的学生资料select * from students where date_of_birth=(select max date_of_birth from students);或者select a.* from students a where not exists (select 1 from students b where b.date _of_birth 》a.date_of_birth);第二种写法在有索引可被利用时效率很高,可作为首选,但是无索引可被利用且是大数据表的情况下效率很低,此时应避免使用。
更多文章:
period翻译成中文(waiting period翻译成中文是什么)
2024年7月22日 12:27
mysql数据迁移到oracle(怎样将mysql数据库导入到oracle数据库中)
2024年7月16日 17:28
redis数据清理六种方式(php redis 怎么清除数据库)
2024年7月23日 08:32
css鼠标滑过(css中如何定义鼠标经过改变图片,并且可以有链接点击)
2024年7月14日 05:48
hive建表语句(hive存文本文件中第一行是表头解决办法)
2024年7月15日 19:57
socket协议和tcp协议的区别(TCP和SOCKET什么关系)
2024年5月16日 12:28
mkdir函数用法(根据名称自动新建文件夹并分配到里面,怎么实现)
2024年7月18日 05:30
string转boolean(js里面怎么把string转换成boolean)
2024年7月17日 21:30
java游戏编程小游戏代码(想用Java做游戏,但是小白,怎么做)
2024年7月20日 13:43
mongodb和mysql结合(thinkphp 用mysqlmongodb 模型怎么使用)
2024年7月23日 22:40
颜色大全100种(世界上一共有多少种颜色可以列举出一百种吗)
2024年10月15日 18:50
三十二进制在线计算器(十进制数32转换成无符号二进制整数是多少)
2024年7月13日 06:15
dtpicker控件在哪(vb中 dtpicker控件在控件箱中没有去哪里找)
2024年9月26日 02:41