gpt4 book ai didi

mysql - 根据输入选择下一个 'free' 整数

转载 作者:行者123 更新时间:2023-11-29 10:28:28 26 4
gpt4 key购买 nike

我有一个表,其中包含一些数据(在其他列中)具有自动增量列“id”和一个名为“sifra”的列。

我需要根据一些输入(数字)找到下一个免费号码“sifra”。

如果我的表中“sifra”列有以下值:

  • 1
  • 2
  • 3
  • 4
  • 6
  • 11
  • 12
  • 14
  • 322
  • 323
  • 324
  • 678
  • 6790
  • 6810
  • 6812

如果我发送值“1”,mysql应该返回“10”,因为它是下一个带有前导“1”的空闲整数,如果我传递“32”,它应该返回“320”。

如果我传递“681”,它应该返回“6811”。

这是我迄今为止尝试过的:

 SELECT LEFT(MAX(a.sifra), 5) + 1 max_val
FROM artikli as a
left join artikli as arttab
on a.sifra + 1 = arttab.sifra
WHERE a.sifra LIKE '" & sifra & "%'

最佳答案

您可以使用以下存储过程:

delimiter $$
drop procedure if exists getfreenum $$
create procedure getfreenum(num int)
begin

set @compare := (num * 10);

set @maxId := (select sifra from artikli where sifra >= @compare order by sifra asc limit 1);

while @compare = @maxId do
set @compare := @compare + 1;
set @maxId = (select sifra from artikli where sifra >= @compare order by sifra asc limit 1);
end while;

select @compare;
end $$
delimiter ;

关于mysql - 根据输入选择下一个 'free' 整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47869047/

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