gpt4 book ai didi

mysql - 使用 SQL 更新多行

转载 作者:行者123 更新时间:2023-11-29 00:45:04 25 4
gpt4 key购买 nike

我有两张 table

student:
(student_id, student_name)

license:
(license_id, student_id)

我有一个学生 ID 列表(例如“3,4,5”)

我想更新表 license 中的 3(列表大小)行,并将它们的 student_id 字段分别从 null 更改为 3、4、5。

我该怎么做?运行更新循环对我来说不是合适的解决方案。提前致谢。

最佳答案

我有一个 MS SQL 版本的 ID 解析器。您可以使用它来生成一个表,其中只有一个列包含您的 ID,它需要一个 varchar(max) 类型的参数。您可以在类似

的选择语句中使用它
SELECT * FROM TABLENAME
WHERE COLUMNAME IN (SELECT value FROM parseIDs ('1,2,3'))

函数如下:

CREATE FUNCTION parseIDs  
(
@IDList VARCHAR(MAX)
)
RETURNS @IDs TABLE (value VARCHAR(80))
AS
BEGIN
IF @IDList is null
RETURN

DECLARE @Len INT,
@Pos INT,
@Cur INT

SELECT @Pos = 0,
@Len = 0,
@Cur = 1,
@IDList = CASE
WHEN SUBSTRING(@IDList, LEN(@IDList), 1) = ',' THEN @IDList
ELSE @IDList + ','
END

SELECT @Pos = CHARINDEX( ',', @IDList, @Cur)
WHILE (@Pos <> 0)
BEGIN
INSERT @IDs VALUES (LTRIM(SUBSTRING( @IDList, @Cur, (@Pos - @Cur))))
SELECT @Cur = @Pos + 1
SELECT @Pos = CHARINDEX( ',', @IDList, @Cur)
END
return
END

关于mysql - 使用 SQL 更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847436/

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