基本上就是这样
我希望表格的每一行都有一个 5 个字符长的字符串/标记
每个 token 都由这些字符组成
abcdefghijklmnopqrstuvwxyz0123456789
创建 token 不是问题,让它独一无二是
我知道我可以创建一个 token ,检查它是否存在,然后循环直到它不存在,但这看起来效率很低,而且可能会有很多查询
是否有更清洁、更快速的解决方案?
最佳答案
您可以只生成一个 0 到 60466175 之间的随机数,检查它是否存在,然后 CONV([the number], 10, 36)
。
碰撞的可能性很大程度上取决于你有多少数据,如果它看起来像一个问题,一个解决方案可能是提前将所有 6000 万+组合填充到一个表中,使用
字段。随机选择一个where used = 0
,并将其标记为当时已使用。
编辑:另一位用户对原始问题的评论甚至更好,从“可用 token ”表中删除将意味着速度会随着时间的推移而提高。
Edit2:如果要保证刚好是5位,则数字必须>=1679616。
关于php - 生成表唯一字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301073/