0

我在 MySql 中有存储过程,用户将传入一个数字,例如'cr002149' 现在我想为 select 语句中的每条记录增加 1。我该怎么做才能让数字变成例如 cr002150,cr002151 ......

谢谢。

4

1 回答 1

3

您应该重新考虑您的数据结构,仅使用auto_increment'd 整数可能会获得更好的运气。无论哪种方式,都应该这样做。

CONCAT('cr',
  LPAD(
    CAST(
      SUBSTRING('cr002149',3) AS DECIMAL(0)
    )+1,
    6,'0'
  )
);

以上将返回cr002150。首先,我们得到002149using SUBSTRING,然后将字符串002149转换为整数并得到2149。现在,我们将其递增到 get 2150,然后将其左填充 0 以得到 get 002150,最后我们cr在左侧连接。

于 2013-08-06T03:59:21.327 回答