How to generate a UUIDv4 in MySQL?

后端 未结 3 1238
无人及你
无人及你 2020-12-03 01:15

MySQL\'s UUID function returns a UUIDv1 GUID. I\'m looking for an easy way to generate random GUIDs (i.e. UUIDv4) in SQL.

3条回答
  •  执念已碎
    2020-12-03 01:55

    In the off chance you're working with a DB and don't have perms to create functions, here's the same version as above that works just as a SQL expression:

    SELECT LOWER(CONCAT(
        LPAD(HEX(FLOOR(RAND() * 0xffff)), 4, '0'), 
        LPAD(HEX(FLOOR(RAND() * 0xffff)), 4, '0'), '-',
        LPAD(HEX(FLOOR(RAND() * 0xffff)), 4, '0'), '-', 
        '4',
        LPAD(HEX(FLOOR(RAND() * 0x0fff)), 3, '0'), '-', 
        HEX(FLOOR(RAND() * 4 + 8)), 
        LPAD(HEX(FLOOR(RAND() * 0x0fff)), 3, '0'), '-', 
        LPAD(HEX(FLOOR(RAND() * 0xffff)), 4, '0'),
        LPAD(HEX(FLOOR(RAND() * 0xffff)), 4, '0'),
        LPAD(HEX(FLOOR(RAND() * 0xffff)), 4, '0')));
    

提交回复
热议问题