php - 生成表唯一字符串

标签 php mysql

基本上就是这样

我希望表格的每一行都有一个 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/

相关文章:

php - PHP、Ajax 和 MySQL 中文本框中的自动完成

mysql - 共同好友sql

php - 为 session 准备的声明

mysql - gtk2 和线程中的段错误

mysql - 更改生产数据库

php - WordPress WP_DEBUG 不显示错误

php - 在没有 http ://in symfony 的情况下验证 url

php - 在 MySQL 和 PHP 中创建好友关系

php - 启用文件信息扩展

mysql - ActiveRecord MySQL 在查询期间丢失与 MySQL 服务器的连接