【发布时间】:2014-10-05 13:36:03
【问题描述】:
我用mysql函数UUID()生成唯一&随机字符串,可以设置这个生成字符串的长度吗?我只需要 8 个字母。
这个插入是我用php插入函数做的...
提前谢谢你。
【问题讨论】:
我用mysql函数UUID()生成唯一&随机字符串,可以设置这个生成字符串的长度吗?我只需要 8 个字母。
这个插入是我用php插入函数做的...
提前谢谢你。
【问题讨论】:
正如其他人提到的那样,UUID 是不可能的,因为它具有standard 指定的定义模式。但是你可以在 PHP 中使用这个函数,它会为你创建字母和数字的唯一 ID
<?php
function generateUUID($length) {
$random = '';
for ($i = 0; $i < $length; $i++) {
$random .= rand(0, 1) ? rand(0, 9) : chr(rand(ord('a'), ord('z')));
}
return $random;
}
【讨论】:
which will create the unique ids 或者是唯一的 id 误导?
UUID 是一个 128 位数字,由 utf8 字符串表示,由五个十六进制数字组成,采用 aaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee 格式
所以,不 - 您不能指定 UUID 长度,因为它已定义格式。您唯一能做的就是对UUID 函数返回的值进行子串化。
【讨论】:
这是不可能的。
另一种方法是使用 PHP 生成您的唯一编号。
【讨论】:
UUID 是标准实现:
返回根据生成的通用唯一标识符 (UUID) “DCE 1.1:远程过程调用”(附录 A)CAE(通用应用程序) 环境) The Open Group 于 10 月发布的规范 1997 年(文件编号 C706, http://www.opengroup.org/public/pubs/catalog/c706.htm)。
也许你可以使用一些函数,比如rand。创造一些随机的东西。或者使用php生成8个字符。查看本主题:Generate random string from 4 to 8 characters in PHP
http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid
【讨论】:
怎么样
SELECT LEFT(UUID(), 8) FROM dual
添加来自 Cas Wolters 的评论:
简单地获取前8个字符大大降低了字符串的唯一性
【讨论】: