使用 uuid returns nothing 查询 SQLite

Query SQLite using uuid returns nothing

我正在使用 UNIQUEIDENTIFIER 类型的 id 列查询 SQLite 数据库文件。

两条命令是:

SELECT * FROM scanned_images WHERE id = cast('5D878B98-71B2-4DEE-BA43-61D11C8EA497' as uniqueidentifier)

SELECT * FROM scanned_images WHERE id = '5D878B98-71B2-4DEE-BA43-61D11C8EA497'

然而,以上命令均未返回任何结果。

我也试过:

SELECT * FROM scanned_images WHERE rowid = 1 

这个命令returns正确的数据。

SQLite 中没有 uniqueidentifier 数据类型。
根据 3.1. Determination Of Column Affinity 中描述的类型亲和性规则,该列的亲和性为 numeric.
此表达式所做的一切:

cast('5D878B98-71B2-4DEE-BA43-61D11C8EA497' as uniqueidentifier)

是return5.

您应该将列的数据类型定义为TEXT,因为您必须将其视为TEXT并写入条件:

WHERE id = '5D878B98-71B2-4DEE-BA43-61D11C8EA497'

或:

WHERE id = '(5D878B98-71B2-4DEE-BA43-61D11C8EA497)'

如果如图所示,它包含括号。