我陷入了以下问题。我有两个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的一般规则,或者我做错了什么?
答案 0 :(得分:1)
没有正式订购的UUID,因为它们只是128位的不透明字符串,没有内在含义。某些应用程序可能会“有帮助”地将其定义为要订购的产品,但是由于没有遵循的官方命令,因此它们可能会针对如何执行操作做出不同的决定。甚至在同一应用程序的实例之间,它甚至可能有所不同。由于它们正在运行的计算机的字节序。