在MySQL直接生成的UUID中删除破折号

10

我使用PDO直接在MySQL上使用INSERT INTO tbl1 (key, val) VALUES (UUID(), :value)生成UUID。我不知道如何在MySQL端删除这些-(破折号),在PHP端,我可以使用str_replace()轻松删除它。

2个回答

20
REPLACE(UUID(),'-','')

你不需要使用UNHEX,只需简单地替换连字符即可。

1

获取十进制值以放入某个整数字段,请使用以下方法

UNHEX(REPLACE(UUID(),'-',''))

为什么我需要使用UNHEX函数?我的列类型只是简单的VARCHAR - fishcracker
如果您将UUID用作PRIMARY KEY,则应将其存储为BINARY(16)而不是VARCHAR(32)。当涉及到小至数万个数据集时,它确实会提高性能。要这样做,您需要像此示例中那样删除破折号并取消十六进制转换。您可以从percona博客这里了解有关UUID作为主键的更多信息。 - adambullmer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接