Mysql从表中选择最大值,但没有给出准确的结果


Mysql Select max from table not giving accurate result

我的表中有以下值: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。我该如何解决此问题?

试试这个:

SELECT MAX(CONVERT(SUBSTRING_INDEX(job_card_no,'-',-1),UNSIGNED INTEGER)) AS max_job_card FROM `job_card`;

希望它能起作用:)

这可能不是标准答案,但可以提供所需的输出!!

无法获得正确的输出,因为查询无法为字符串提供最大值。解决方案是===>1) 执行查询以获取所有job_card_no

SELECT job_card_no FROM `job_card`

2) 现在,对foreach使用内爆(),然后对特定的数组使用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');

您可以尝试SUBSTRING( string, start_position, [ length ] )以获得结果:

SELECT MAX(SUBSTRING(job_card_no, 6, 2)) AS max_job_card FROM `job_card`

mysql中的SUBSTRING有三个参数。

  • 您的域名(您的域名)

  • 起点(您想从哪里开始)

  • 长度(需要多少个字符)