我在SQLite中有一个GUID类型的列,我尝试过这样的查询,它没有返回错误,但该行没有被删除
DELETE FROM MyTable WHERE Id='4ffbd580-b17d-4731-b162-ede8d698e026';
在SQLite浏览器中,Id值看起来像二进制值,它们有奇怪的字符。
我也尝试过这个,但仍然不起作用
DELETE FROM MyTable WHERE Id='{4ffbd580-b17d-4731-b162-ede8d698e026}';
我知道我迟到了,但这可能对有同样问题的人有用。
我的一个表中有一个uniqueidentifier类型的列,当我在没有任何条件的情况下执行选择查询时,它会以以下格式返回结果guid列值-
{000B6A69-04D6-C557-7EA3-08CF8C8AD84B}
(是的,带大括号)
我使用typeof()函数发现,我的guid列值已存储为文本。所以,我只尝试了四种不同的说法,幸运的是,第四种说法有效-
1. select myGuidColumn, typeof(myGuidColumn) from MyTable WHERE [myGuidColumn] = '000B6A69-04D6-C557-7EA3-08CF8C8AD84B' --didn't work
2. select myGuidColumn, typeof(myGuidColumn) from MyTable WHERE [myGuidColumn] = '{000B6A69-04D6-C557-7EA3-08CF8C8AD84B}' --didn't work
3. select myGuidColumn, typeof(myGuidColumn) from MyTable WHERE [myGuidColumn] LIKE '{000B6A69-04D6-C557-7EA3-08CF8C8AD84B}' --didn't work
4. select myGuidColumn, typeof(myGuidColumn) from MyTable WHERE [myGuidColumn] LIKE '000B6A69-04D6-C557-7EA3-08CF8C8AD84B' --it works!
尝试此命令。Id
可能是一个二进制blob字段
DELETE FROM MyTable WHERE Id= X'4ffbd580b17d4731b162ede8d698e026';