mysql - SQL Concat 和 intvalue

标签 mysql sql concatenation

我有一个索引字段和一个子索引字段,我需要将它们连接起来以获得一个 id。

我不能只连接两个字段,因为这样它可以给出 double 值...

假设我有索引 18 和子索引 8,它会给我 188,并且索引 1 和子索引 88 也会给我。

因此,我也想在值从 1-9 的子索引字段中添加 0。

有人可以帮我解决这个问题的语法吗?语言是 MySQL,两个表都有 int 值..

如果值为 1-9,则在子索引之前添加 0,CONCAT (index,subindex) AS indexID

最佳答案

您可以将 CASE 与 CONCAT 结合使用,如下所示。

WORKING FIDDLE HERE

SELECT
`INDEX`,`SUB_INDEX`,
(
    CONCAT
    ((CASE WHEN `INDEX` <10
         THEN CONCAT ('0' , `INDEX`)
         ELSE `INDEX`
      END)
    ,
    (CASE WHEN SUB_INDEX <10
        THEN CONCAT ('0' , `SUB_INDEX`)
         ELSE SUB_INDEX 
      END)
     )
) AS ID
FROM MY_TABLE 

关于mysql - SQL Concat 和 intvalue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26295395/

相关文章:

mysql - 为什么mysql在select数据时给myisam引擎表加读锁?

SQL:如何计算可能重叠的日期范围之间的唯一天数?

Mysql查询匹配2个条件

python - 如何修复“Python 返回方法不返回串联字符串中的整数

mysql转储: MySql backup user is not able to connect using password

mysql - 使用 FULLTEXT 从大表中检索排名靠前的行非常慢

sql - SQL Server 是否可能报告不正确的受影响行数?

python - 在 Python 中连接 file.write() 中的字符串?

concatenation - 通过 System Verilog 中的模块传递参数数组

mysql - 奇怪的 "Cannot add or update a child row: a foreign key constraint fails"错误