SELECT GUID 使用 sql.js returns 无结果
SELECT GUID using sql.js returns no result
我正在尝试 return 我的 sqlite 的特定行 table 通过使用它的 GUID。
table "Reference" 定义为
CREATE TABLE "Reference" ( `ID` GUID, [...], PRIMARY KEY(`ID`) )
当通过 SELECT ID FROM Reference
对所有行进行 return 时,我将 GUID 值作为逗号分隔的小数(加上一个数字(可能为零)缺失,即最后一个块之前的那个),例如我的结果 GUID 之一是 20,129,73,9,133,47,79,7,80,130,247,254,95,40,35,29
.
现在,如果我尝试使用此 GUID select 整行,我不会得到任何结果。
示例查询:
SELECT * FROM Reference WHERE ID = '20,129,73,9,133,47,79,7,80,130,247,254,95,40,35,29'
此外,我已经尝试将小数转换为十六进制或 ascii 值并改用它们 - 但没有成功。
看起来 GUID 存储为 16 字节的 blob,JavaScript 代码正在将它们转换为表示字节的整数数组。但是 SQLite 用于 blob 文字的语法是一个 X 前缀的十六进制字符串,如下所示:
SELECT * FROM Reference WHERE ID = X'14814909852F4F075082F7FE5F28231D'
我正在尝试 return 我的 sqlite 的特定行 table 通过使用它的 GUID。
table "Reference" 定义为
CREATE TABLE "Reference" ( `ID` GUID, [...], PRIMARY KEY(`ID`) )
当通过 SELECT ID FROM Reference
对所有行进行 return 时,我将 GUID 值作为逗号分隔的小数(加上一个数字(可能为零)缺失,即最后一个块之前的那个),例如我的结果 GUID 之一是 20,129,73,9,133,47,79,7,80,130,247,254,95,40,35,29
.
现在,如果我尝试使用此 GUID select 整行,我不会得到任何结果。
示例查询:
SELECT * FROM Reference WHERE ID = '20,129,73,9,133,47,79,7,80,130,247,254,95,40,35,29'
此外,我已经尝试将小数转换为十六进制或 ascii 值并改用它们 - 但没有成功。
看起来 GUID 存储为 16 字节的 blob,JavaScript 代码正在将它们转换为表示字节的整数数组。但是 SQLite 用于 blob 文字的语法是一个 X 前缀的十六进制字符串,如下所示:
SELECT * FROM Reference WHERE ID = X'14814909852F4F075082F7FE5F28231D'