Mysql 从INT';的逗号分隔字符串创建临时表;s
我想在这里使用一个临时表和一个WHILE子句来分享我的发现。我将一个逗号分隔的INT字符串分隔开,以便在in语句中使用。Mysql 从INT';的逗号分隔字符串创建临时表;s,mysql,sql,database,comma,table-variable,Mysql,Sql,Database,Comma,Table Variable,我想在这里使用一个临时表和一个WHILE子句来分享我的发现。我将一个逗号分隔的INT字符串分隔开,以便在in语句中使用。DECLARE@fk\u ArtworkType\u ID varchar(20)='1,2,13' DECLARE @fk_ArtworkType_ID varchar(20) = '1, 2, 13' SET @fk_ArtworkType_ID = REPLACE(@fk_ArtworkType_ID, ' ', '') DECLARE @ArtworkTypeIDT
DECLARE@fk\u ArtworkType\u ID varchar(20)='1,2,13'
DECLARE @fk_ArtworkType_ID varchar(20) = '1, 2, 13'
SET @fk_ArtworkType_ID = REPLACE(@fk_ArtworkType_ID, ' ', '')
DECLARE @ArtworkTypeIDTable TABLE (fk_ArtworkType_ID int)
DECLARE @Count AS INT = 0
SET @Count = LEN(@fk_ArtworkType_ID) - LEN(REPLACE(@fk_ArtworkType_ID, ',', '')) + 1
WHILE @Count > 0
BEGIN
IF @Count <> 1
BEGIN
INSERT INTO @ArtworkTypeIDTable VALUES(SUBSTRING(@fk_ArtworkType_ID, 0, CHARINDEX(',', @fk_ArtworkType_ID, 0)))
SET @fk_ArtworkType_ID = SUBSTRING(@fk_ArtworkType_ID, (CHARINDEX(',', @fk_ArtworkType_ID, 0) + 1), LEN(@fk_ArtworkType_ID))
END
ELSE
BEGIN
INSERT INTO @ArtworkTypeIDTable VALUES(@fk_ArtworkType_ID)
END
SET @Count = @Count - 1
END;
设置@fk\u ArtworkType\u ID=REPLACE(@fk\u ArtworkType\u ID,,“”)
声明@ArtworkTypeIDTable表(fk_ArtworkType_ID int)
将@Count声明为INT=0
设置@Count=LEN(@fk_ArtworkType_ID)-LEN(替换(@fk_ArtworkType_ID,,,,,)+1
而@Count>0
开始
如果@Count 1
开始
插入到@ArtworkTypeIDTable值中(子字符串(@fk_ArtworkType_ID,0,CHARINDEX(',',@fk_ArtworkType_ID,0)))
设置@fk_ArtworkType_ID=SUBSTRING(@fk_ArtworkType_ID,(CHARINDEX(',,@fk_ArtworkType_ID,0)+1),LEN(@fk_ArtworkType_ID))
结束
其他的
开始
插入@ArtworkTypeId表格值(@fk\u ArtworkType\u ID)
结束
设置@Count=@Count-1
结束;
可以在in语句中使用逗号分隔的整数字符串。为什么要分开?正确的“分享你的发现”方法是使用社区Wiki来传播声音和分享你的发现