我的表中有以下值:JC-1-1 , JC-1-2 , JC-1-3, JC-1-4,JC-1-5,JC-1-6,JC-1-7,JC-1-8,JC-1-9,JC-1-10,JC-1-11,JC-1-12,JC-1-15
。
当我尝试使用mysql MAX函数选择值时,如下所示:
SELECT MAX(job_card_no) AS max_job_card FROM `job_card`
我得到的值为: JC-1-9代替JC-1-15。 我该如何解决这个问题?
答案 0 :(得分:2)
试试这个:
SELECT MAX(CONVERT(SUBSTRING_INDEX(job_card_no,'-',-1),UNSIGNED INTEGER)) AS max_job_card FROM `job_card`;
希望它能起作用:)。
答案 1 :(得分:0)
您可以尝试SUBSTRING( string, start_position, [ length ] )
获取结果:
SELECT MAX(SUBSTRING(job_card_no, 6, 2)) AS max_job_card FROM `job_card`
mysql中的SUBSTRING有三个参数。
您的字段名称(您的字段名称)
起点(您要开始的地方)
长度(你想要多少个角色)
答案 2 :(得分:0)
这可能不是标准答案,但可以提供所需的输出!!
您无法获得正确的输出,因为查询无法为字符串赋予最大值。 解决方案是==> 1)执行查询以获取所有job_card_no
SELECT job_card_no FROM `job_card`
2)现在,使用forelo的implode()然后对该特定数组使用max()函数
$arr = array('JC-1-1' , 'JC-1-2' , 'JC-1-3', 'JC-1-4','JC-1-5','JC-1-6','JC-1-7','JC-1-8','JC-1-9','JC-1-10','JC-1-11','JC-1-12','JC-1-15');