1

我在 SQLite 中有 GUID 类型的列,我尝试过这样的查询,它没有返回错误,但没有删除该行

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

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

这个我也试过了,还是不行

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

2 回答 2

1

我知道我迟到了,但它可能对有同样问题的人有用。

我的一个表中有一个 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!
于 2013-03-27T18:49:22.697 回答
0

试试这个命令。 Id可能是一个二进制 blob 字段

 DELETE FROM MyTable WHERE Id= X'4ffbd580b17d4731b162ede8d698e026';
于 2013-02-06T23:51:07.233 回答