MariaDB 字段 + 1

Bug*_*987 2 mysql mariadb

如何将之前为 0001 的字段增加 +1,然后变为 0002?我目前正在使用以下命令:

SELECT fieldA+1
FROM table
WHERE ID = 1234;
Run Code Online (Sandbox Code Playgroud)

但这只是将 0001 变成 2

这是一个非常基本的问题,但我不明白

S3D*_*DEV 5

类型字段INT必须首先转换为字符串(或CHAR),以便执行基于字符串的操作,例如 pad - 尽管这可能会在“幕后”隐式处理。

例如:

SELECT 
    LPAD(fieldA + 1, 4, '0') as fieldA_
FROM table
WHERE ID = 1234;
Run Code Online (Sandbox Code Playgroud)
字段A_
0002

其中LPAD参数如下:LPAD(str, len [,padstr]).


相关文档:

在旁边:

  • 设计者必须保证pad的长度足够,否则字符会被截断

  • 可能需要考虑将“格式化”活动留给前端,并将“数据”活动留给后端(即数据库)。无论您决定采取哪种方法,都要保持一致。如果/当更新时,其他开发人员和维护人员可能会感到沮丧,因为他们不知道在应用更新时到底要在哪里查看。(例如,“此更改适用于数据库还是应用程序?”是一个经常被问到的问题。)

  • 要点:考虑到使焊盘长度正确的潜在复杂性(请查看下面的评论) -只需在应用程序本身中进行格式化即可。让数据库处理数据,让应用程序处理表示


编辑:

  • CAST发表了评论,指出不需要致电。
  • 解决了有关字符串截断的评论。