Php 如何从MySQL中截短值并添加一个加号,并显示为输入的默认值?

Php 如何从MySQL中截短值并添加一个加号,并显示为输入的默认值?,php,mysql,sql,html,phpmyadmin,Php,Mysql,Sql,Html,Phpmyadmin,我有MySQL数据库,数据如下: id | name 65 | 2016.C007 65 | 2016.C006 ... | ... 我编写此代码是为了获取最后的数据: function latestVersion() { $con = openLockMySQLdb('labcom', 'versions', 'READ'); $q= mysql_query('SELECT name FROM versions ORDER BY name desc LIMIT 1'

我有MySQL数据库,数据如下:

 id | name
 65 | 2016.C007
 65 | 2016.C006
... | ...
我编写此代码是为了获取最后的数据:

function latestVersion() {

    $con = openLockMySQLdb('labcom', 'versions', 'READ'); 
    $q= mysql_query('SELECT name FROM versions ORDER BY name desc LIMIT 1', $con);
    $result = mysql_fetch_assoc($q);

    if ($result)
        echo date("Y").".".$result['name'];
    else
        echo "mistake";
    closeUnlockMySQLdb($con);
}
这一结果是:2016.2016.C007。但我想写下2016.C008。顺便说一句,我想在最后一个加上+1

基于此:

“名称”列下的数据是否始终采用此格式。CXXX 1000111


是的,总是这样里克利14

问题是:

SELECT
    CONCAT('C', LPAD(SUBSTRING(name FROM    LOCATE('.C' ,name) + 2 FOR (LENGTH(name) - LOCATE('.' ,name))) + 1,3,'0')) AS 'name'
FROM versions 
ORDER BY name 
DESC LIMIT 1


更多:如果数字曾经达到或超过3位最大数字(即999),则需要采用以下查询:

用例场景:对于
2016.C999
中的
name
列中的值:

SELECT
    CONCAT(
        'C',
        LPAD(SUBSTRING(name FROM    LOCATE('.C' ,name) + 2 FOR (LENGTH(name) - LOCATE('.' ,name))) + 1,
            IF (
                SUBSTRING(name  FROM LOCATE('.C' ,name) + 2 FOR (LENGTH(name) - LOCATE('.' ,name))) + 1 >= 1000,
                CHAR_LENGTH(SUBSTRING(name  FROM LOCATE('.C' ,name) + 2 FOR (LENGTH(name) - LOCATE('.' ,name))) + 1),3  
            ),
            '0'
        )
    ) AS 'name'
FROM versions 
ORDER BY name 
DESC LIMIT 1;

结果是这
2016.2016.C007
。想要这个:
2016.C008
。如果是这样的话,那么为什么要追加日期?因为我希望第一部分(在“.”之前)是实际年份,而第二部分来自查询。
name
列下的数据总是采用这种格式
year.CXXX
?是的,总是这样。我的意思是它在
C
之后需要3个字符。谢谢您的帮助,我尝试了第一个查询,但结果是2016年。C1.5。不是2016.C008请检查一下。我假设您选择的名称列包含如下值:
2016。C007
我检查了它,它可以与FIDDLE一起工作,但当我复制到代码中时,在某个地方出现了语法问题。但是如果我这样写的话:CONCAT(\'C\',LPAD(子字符串(名称来自LOCATE(\'.C\',name)+2代表(长度(名称)-LOCATE(\'.\',名称))+1,3,\'0\')作为版本的“名称”,按名称顺序描述限制1',$con);没关系,但结果是2016.C1.5请运行此
从版本中选择名称按名称订购desc LIMIT 1
并在此处共享输出?这是原始版本。结果是:2016.2016.C007