0

我正在尝试使用其 GUID 返回我的 sqlite 表的特定行。

表“参考”定义为

CREATE TABLE "Reference" ( `ID` GUID, [...], PRIMARY KEY(`ID`) )

通过返回所有行时,SELECT ID FROM Reference我将 GUID 值作为逗号分隔的小数(加上一个数字(可能为零)丢失,最后一个块之前的那个),例如我的结果 GUID 之一是20,129,73,9,133,47,79,7,80,130,247,254,95,40,35,29.

现在,如果我尝试使用此 GUID 选择整行,我不会得到任何结果。

示例查询:

SELECT * FROM Reference WHERE ID = '20,129,73,9,133,47,79,7,80,130,247,254,95,40,35,29'

此外,我已经尝试将小数转换为十六进制或 ascii 值并改用它们 - 但没有成功。

4

1 回答 1

1

看起来 GUID 存储为 16 字节的 blob,并且 JavaScript 代码正在将它们转换为表示字节的整数数组。但是 SQLite 用于 blob 字面量的语法是一个以 X 为前缀的十六进制字符串,如下所示:

SELECT * FROM Reference WHERE ID = X'14814909852F4F075082F7FE5F28231D'
于 2017-03-16T17:01:25.503 回答