首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取varchar列的最大值并自动递增它

如何获取varchar列的最大值并自动递增它
EN

Stack Overflow用户
提问于 2017-06-27 08:46:54
回答 1查看 501关注 0票数 0

我希望获取varchar列的最大值,它必须是唯一的,这就是为什么我要获取最大值并递增它的原因。

例如,我在tbl_check中遇到这样的情况:

代码语言:javascript
运行
复制
+---------------+
|  check_up_id  |
-----------------
|      1-0      |
|      1-2      |
|      11-1     |
|      111-3    |
|      12-4     |
|      52-5     |
|      1-6      |
|      1-7      |
|      3-9      |
|      3-8      |
|      3-11     |
|      3-10     |
+---------------+

在我的check_up_id中,考虑到我增加了id的右侧(1- **),这是不符合顺序的。现在我不想要的是如何查询以获得右侧的最大值。只考虑右侧,在这种情况下,我有时在左侧有3个或2个数字,或者有时只有一个数字。我想要的是返回右边的最大值。在我的例子中,我想在我的查询中返回3-11。忽略增量,因为我将在php端完成它。我想要的是在(-)之后返回右侧的最大值

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-27 08:52:01

使用:

代码语言:javascript
运行
复制
SELECT MAX(CAST(SUBSTRING_INDEX(check_up_id, '-', -1) AS DECIMAL))
FROM tbl_check

SUBSTRING_INDEX返回列的子字符串,该列包含由-字符分隔的指定数量的字段。负计数意味着从右边开始计数,所以这将返回最右边的字段。

要获取包含它的整个字段,请在JOIN中使用它

代码语言:javascript
运行
复制
SELECT check_up_id
FROM tbl_check
JOIN (
    SELECT MAX(CAST(SUBSTRING_INDEX(check_up_id, '-', -1) AS DECIMAL)) as max_right
    FROM tbl_check) AS x
ON SUBSTRING_INDEX(check_up_id, '-', -1) = max_right
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44770730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档