使用sql.js的SELECT GUID不返回任何结果

时间:2017-03-15 17:27:26

标签: sql sqlite guid sql.js

我正在尝试使用其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值并使用它们 - 但没有成功。

1 个答案:

答案 0 :(得分:1)

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

SELECT * FROM Reference WHERE ID = X'14814909852F4F075082F7FE5F28231D'