MySQL更新顺序(行号)从逗号分隔的列表 - 最简单的方法



>我有一个包含两列 ID 和 ORDER 的表,我想要实现的是将 ORDER 列更新为列表编号(如 1、2 ...

我有以逗号分隔的 ID 列表输入:

21545,13117,21538,940,19658,21547,21532,7404,19663,19666,863,13114,13121,11769,13147,13156,972,13165,13174,13182,853,19671,7429,935,1015,931,986,996,991,953,893,920,899,906,20972,886,873,21574,21548

我需要更新 ORDER,以便 21545 = 1、13117 = 2 等等。

实现这一目标的最简单方法是什么?

也许这对你来说是一件容易的事,但我是一名MSSQL开发人员,所以请不要介意我问这个。谢谢。

如果您从头开始构建查询,则可以使用FIELD函数返回值在一组值中的位置,例如

SELECT FIELD(13117, 21545,13117,21538,940,19658)

如果你有一个逗号分隔的字符串,你可以使用FIND_IN_SET

SELECT FIND_IN_SET(13117, '21545,13117,21538,940,19658')

在这两种情况下,输出都是2.

您可以在 dbfiddle 上的UPDATE查询中找到演示,演示如何使用这些函数

最新更新