我正在使用 MariaDB 10.8.3。我有一个带有 UUID 类型的 PK 的表。我正在插入在应用程序端生成的有序 UUID。当我检索按 UUID 列排序的表的数据时,它没有按预期排序。例如:
SELECT id_label, date_add FROM mod_label ORDER BY id_label ASC;
检索到的数据是这样的:
但是,如果我将 UUID 转换为 char 或转换为十六进制,则结果按预期排序:
SELECT id_label, date_add FROM mod_label ORDER BY CAST(id_label AS CHAR(36)) ASC;
SELECT id_label, date_add FROM mod_label ORDER BY HEX(id_label) ASC;
据我了解,MariaDB 将 UUID 保存为 128 位整数,所以我不理解这种行为。
有人可以向我解释这种行为以及如何解决它吗?