如何在SQLite中删除具有GUID值的行

时间:2013-02-06 23:23:59

标签: sqlite guid

我在GUite类型的SQLite中有一个列,我尝试了这样的查询,它没有返回错误,但是没有删除该行

DELETE FROM MyTable WHERE Id='4ffbd580-b17d-4731-b162-ede8d698e026';

在SQLite浏览器中,Id值看起来像二进制值,它们有奇怪的字符。

我也试过这个,但仍然无效

DELETE FROM MyTable WHERE Id='{4ffbd580-b17d-4731-b162-ede8d698e026}';

2 个答案:

答案 0 :(得分:0)

尝试此命令。 Id可能是二进制blob字段

 DELETE FROM MyTable WHERE Id= X'4ffbd580b17d4731b162ede8d698e026';

答案 1 :(得分:0)

我知道我已经迟到了,但对于遇到同样问题的人来说这可能会有用。

我的一个表中有一个uniqueidentifier类型的列,当我执行一个没有任何条件的select查询时,它会以这种格式返回结果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!