php - MySQL,如何获取后缀最高的字符串

标签 php mysql sql

我的表是:

enter image description here

查询后: SELECT * FROM `table` WHERE `identifier` LIKE '000123_%'

我得到:

enter image description here

如何通过查询获取后缀最高的行,即:000123_5

最佳答案

为什么不像这样在您的数据库中创建函数 SPLIT_STRING:

CREATE FUNCTION `SPLIT_STRING`(
    str VARCHAR(255) ,
    delim VARCHAR(12) ,
    pos INT
) RETURNS VARCHAR(255) CHARSET utf8 RETURN REPLACE(
    SUBSTRING(
        SUBSTRING_INDEX(str , delim , pos) ,
        CHAR_LENGTH(
            SUBSTRING_INDEX(str , delim , pos - 1)
        ) + 1
    ) ,
    delim ,
    ''
);

稍后您可以通过查询调用她以获取最后的字符:

-- Example table 
CREATE TABLE `test`(
    `keywords` VARCHAR(255) DEFAULT NULL
) ENGINE = INNODB DEFAULT CHARSET = utf8;

INSERT INTO `test`(`keywords`)
VALUES
    (
        'keyword 1,keyword 2, keyword 3,     keyword 4'
    );

-- Example query
SELECT
    -- keyword 1
    SPLIT_STRING(`keywords`,',',1) AS keyword_1,
    -- keyword 4, NOT trimmed
    SPLIT_STRING(`keywords`,',',4) AS keyword_4,
    -- keyword 4, trimmed
    trim(SPLIT_STRING(`keywords`,',',4)) AS keyword_4_trimmed
FROM `test`;

在你的例子中使用它:

SELECT SPLIT_STRING(`identifier`,'_',2)  as identifier2,* FROM `table` 
WHERE `identifier` LIKE '000123_%'
ORDER BY SPLIT_STRING(`identifier`,'_',2) DESC

关于php - MySQL,如何获取后缀最高的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53673844/

相关文章:

java - 用户 'root' 的 JDBC 访问被拒绝 @'localhost'

php - 插入关联表

php - 多表连接时仅从一张表获取数据

javascript - 从选择框中获取选定的值

mysql - 如何在 MySQL 中正确建模产品兼容性矩阵

sql - 如何使用postgresql按自定义计数排序?

sql - impala 长度小于 8 位数字

mysql - 先按完全匹配顺序对 Op.or order 进行 Sequelize

php - 将程序代码转换为 Blob 的类

php - 我的网站插入和更新脚本已停止工作