更新:当您坚持将其作为数字时,请像这样创建您的视图:
SELECT
(@rownum:=@rownum + 1) AS rownumber,
yourTable.*
FROM
yourTable
, (SELECT @rownum:=0) r
但事实就是这样——没有其他的可能性了。将行号转换为long
就像我在评论中说的,如果真的真的必须如此long
.
或者在一个程序 http://dev.mysql.com/doc/refman/5.1/de/create-procedure.html:
DELIMITER $$
CREATE PROCEDURE selectFromWhatever()
BEGIN
SELECT
(@rownum:=@rownum + 1) AS rownumber,
yourTable.*
FROM
yourTable
, (SELECT @rownum:=0) r;
END $$
DELIMITER ;
然后得到结果
CALL selectFromWhatever()
原答案:
来自 MySQL 手册:
UUID() http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid
返回根据生成的通用唯一标识符(UUID)
“DCE 1.1:远程过程调用”(附录 A) CAE(通用应用程序)
环境)The Open Group 10 月份发布的规范
1997(文件号 C706,http://www.opengroup.org/public/pubs/catalog/c706.htm http://www.opengroup.org/public/pubs/catalog/c706.htm).
UUID 被设计为在空间和全局上唯一的数字
时间。对 UUID() 的两次调用预计会生成两个不同的
值,即使这些调用是在两台单独的计算机上执行的
彼此不相连。
UUID 是由 5 个 utf8 字符串表示的 128 位数字
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee 格式的十六进制数字:
前三个数字是根据时间戳生成的。
第四个数字保留时间唯一性,以防时间戳值失去单调性(例如,由于日光)
节约时间)。
第五个数字是 IEEE 802 节点号,提供空间唯一性。如果后者不是,则替换为随机数
可用(例如,因为主机没有以太网
卡,或者我们不知道如何找到卡的硬件地址
操作系统上的界面)。在这种情况下,空间唯一性
不能保证。尽管如此,碰撞的发生率应该非常低
可能性。
目前,仅在 FreeBSD 和 Linux 上考虑接口的 MAC 地址。在其他操作系统上,MySQL 使用
随机生成的 48 位数字。
mysql> 选择 UUID();
->'6ccd780c-baba-1026-9564-0040f4311e29'
Warning
尽管 UUID() 值旨在是唯一的,但它们并不是
必然是不可猜测或不可预测的。如果不可预测性是
如果需要,UUID 值应该以其他方式生成。笔记
UUID() 不适用于基于语句的复制。
其他方式将使用CONCAT()
建立您的独特ID。
SELECT CONCAT(PRINCIPAL_ID, '-', GROUP_ID) AS myUniqueID
FROM yourTable