mysql选择最大值,但显示不符合预期

mysql选择最大值,但显示不符合预期,mysql,max,Mysql,Max,我有一个查找最大值的查询,但显示不符合预期 这是我表中的数据 我只是想得到这个列中的最大值。 我使用查询 选择MAXSSUBSTRNO_框,3作为TBL_pengecekan中的maxnb,但显示值为9 预期值为10 请帮助我您需要将substrno\u框3转换为int,然后应用max 您得到的值是9,因为这是查询所依据的集合中的词汇最大值。如果你想得到数值最大值,你必须先把数值转换成整数,基本上是从字符串转换成int。你可以用castsubstrno_框,3作为有符号 完整代码 您也可以通过

我有一个查找最大值的查询,但显示不符合预期

这是我表中的数据

我只是想得到这个列中的最大值。 我使用查询 选择MAXSSUBSTRNO_框,3作为TBL_pengecekan中的maxnb,但显示值为9

预期值为10


请帮助我

您需要将substrno\u框3转换为int,然后应用max

您得到的值是9,因为这是查询所依据的集合中的词汇最大值。如果你想得到数值最大值,你必须先把数值转换成整数,基本上是从字符串转换成int。你可以用castsubstrno_框,3作为有符号

完整代码


您也可以通过从字符串中删除A-来获取最大值

质疑

另一种方法是,先按长度的降序排列列,然后按列本身的降序排列。然后将结果限制为1

质疑


最大值是多少?我相信该语法适用于其他SQL server,而不是作者正在使用的SQL server。作者使用的是MySQL,这似乎是微软版的SQL:但想法是一样的。
select max(cast(substr(no_box,3) as signed)) from tablename
SELECT 
    max(cast(substr(no_box, 3) as signed)) as maxnb 
FROM tbl_pengecekan
select max(`t`.`num`) as `maxnb` from (
    select cast(replace(`no_box`, 'A-', '') as signed) as `num`
   from `tbl_pengecekan`
) as `t`;
select replace(`no_box`, 'A-', '') as `maxnb`
from `tbl_pengecekan`
order by length(`no_box`) desc, `no_box` desc limit 1;