【问题标题】:How is ordering defined for UUIDs?如何为 UUID 定义排序?
【发布时间】:2020-05-03 22:48:16
【问题描述】:

我陷入了以下问题。我有两个 UUID

const boost::uuids::uuid first = Helper::String2UUID("43E3F007-3993-4587-801E-D24C012587E4"));
const boost::uuids::uuid second = Helper::String2UUID("652335C1-6479-4D6A-9599-25A671366E05"));

在 Boost 中,我认为这是真的。

BOOST_REQUIRE(first < second);

但是当我使用该 UUID 列的排序在 SQL Server 上进行查询时,结果发现

second < first

看起来 UUID 的排序因应用程序而异。这是否意味着订购 UUID 没有一般规则,还是我做错了什么?

【问题讨论】:

标签: c++ sql-server boost sql-order-by uuid


【解决方案1】:

没有正式的 UUID 排序,因为它们只是一个 128 位的不透明字符串,没有内在含义。一些应用程序可能“有帮助地”将它们定义为有序,但由于没有遵循官方的顺序,它们可能会就如何做到这一点做出不同的决定。它甚至可能在同一应用程序的实例之间有所不同,例如由于它们正在运行的机器的字节序。

【讨论】:

    猜你喜欢
    • 2022-09-26
    • 2012-01-05
    • 2017-08-31
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多