所以基本上这个
我希望在表格的每一行都有一个5个字符长的字符串/标记
每个令牌都由这些字符组成
abcdefghijklmnopqrstuvwxyz0123456789
创建令牌不是问题,使其独一无二是
我知道我可以创建一个令牌,检查它是否存在,然后循环直到它没有但这看起来效率非常低并且可能是很多查询
是否有更清洁,更快速的解决方案?
答案 0 :(得分:0)
这可能是您正在寻找的:
https://gist.github.com/gordonbrander/2230317
var ID = function () {
// Math.random should be unique because of its seeding algorithm.
// Convert it to base 36 (numbers + letters), and grab the first 9 characters
// after the decimal.
return '_' + Math.random().toString(36).substr(2, 9);
};
如果您愿意使用js库,那么:
答案 1 :(得分:0)
您可以生成0到60466175之间的随机数,检查它是否存在,然后CONV([the number], 10, 36)
。
碰撞的可能性很大程度上取决于您拥有多少数据,如果它看起来像是一个问题,解决方案可能是提前将所有6000万+组合填充到表格中,{{1} }字段。随机选择一个used
,并将其标记为当时使用。
编辑:另一位用户对原始问题的评论甚至更好,从"可用代币中删除"表格意味着速度可以随着时间的推移而改善。
Edit2:如果您想确保5位数字,则该数字必须为> = 1679616。