gpt4 book ai didi

php - 在sql查询中自动增加一个varchar

转载 作者:可可西里 更新时间:2023-11-01 06:47:47 25 4
gpt4 key购买 nike

我正在尝试自动递增表中的 varchar 列。它以“PU”为前缀。我用它来获取最后一个数字并将其递增 1。

我在下面尝试了这个查询:

SELECT 
CONCAT(
LEFT( BARCODE, 2 )
,
MAX(
RIGHT( BARCODE, LENGTH(BARCODE)-2 )
* 1 )
+1
)
as newbarcode FROM KGU WHERE HW_TYPE='STANDARD PURGE UNIT';

最后一个条码是 PU0000012。它返回一个 PU13。它删除了 0。

所以我尝试将其替换为:

LEFT( BARCODE, 7 ) 

它返回正确的 PU0000013。但是假设我把 PU1234567 作为最后一个条目。它返回:PU000001234568。

有什么建议吗?我正在使用 php 顺便说一句。如果一个选项是使用 php,我愿意接受。但如果可能的话,我更喜欢在 sql 查询中解决它。

最佳答案

试试这个:

<?php
// fetch the very last entry

$Barcode = 'PU000001234567';

preg_match("/(\D+)(\d+)/", $Barcode, $Matches); // Matches the PU and number

$ProductCode = $Matches[1];

$NewID = intval($Matches[2]);
$NewID++;


$BarcodeLength = 12;
$CurrentLength = strlen($NewID);
$MissingZeros = $BarcodeLength - $CurrentLength;

for ($i=0; $i<$MissingZeros; $i++) $NewID = "0" . $NewID;

$Result = $ProductCode . $NewID;

echo $Result;

// insert into database with $Result

Returns: PU000001234568

关于php - 在sql查询中自动增加一个varchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31873904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com