如何为UUID定义排序?

时间:2020-05-03 22:48:16

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

我陷入了以下问题。我有两个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的一般规则,或者我做错了什么?

1 个答案:

答案 0 :(得分:1)

没有正式订购的UUID,因为它们只是128位的不透明字符串,没有内在含义。某些应用程序可能会“有帮助”地将其定义为要订购的产品,但是由于没有遵循的官方命令,因此它们可能会针对如何执行操作做出不同的决定。甚至在同一应用程序的实例之间,它甚至可能有所不同。由于它们正在运行的计算机的字节序。