如何在SQL中用随机字母和数字填充现有列?

时间:2015-03-18 14:34:26

标签: mysql sql random

我希望使用由字母和数字组成的随机值填充已存在的列。但是,整列的字母和数字的分布应该相同。我的意思是;它看起来应该是这样的:

 "VWE456GT7646" (e.g. 2 letters, 3 numbers, etc.)
 "FRS765TZ9854"
 "..."

我考虑过UPDATE声明,但不知道它应该是什么样子。 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

要生成固定长度的字符串(例如:4),请使用以下内容:

DECLARE @LENGTH INT = 4;
UPDATE MyTable SET MyColumn =
  SUBSTRING(REPLACE(CAST(NEWID() AS VARCHAR(255)),'-',''), 1, @LENGTH)

如果您的要求字母和数字的分布应该相同意味着每个值必须具有相同的cccNNNccNNNN格式,您可以执行此操作4次,剥离字符或数字,并连接这些。

虽然它会成为一个丑陋的大表达,所以你可能想重新考虑这个要求。

注1:MySQL还是SQL Server?你的问题有两个标签。因此,您必须使用NEWID()UUID()

注意2:您可以使用的子字符串的长度有限制,因为GUID必须包含该字符数/数字。