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

私はこれに遅れていることを知っていますが、同じ問題を抱えている人にとっては役立つかもしれません.

テーブルの 1 つに uniqueidentifier 型の列があり、条件なしで選択クエリを実行すると、結果の guid 列の値が次の形式で返されます。

{000B6A69-04D6-C557-7EA3-08CF8C8AD84B}

(はい、ブレース付き)

typeof() 関数を使用して、guid 列の値がテキストとして格納されていることがわかりました。そこで、4 つの異なるステートメントを試してみたところ、幸運にも4 つ目のステートメントが機能しました

    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おそらくバイナリブロブフィールドです

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