20

我有一个简单的查询,它返回一堆 guid 作为十六进制字符串:

SELECT HEX(guid) FROM table;

其中之一是例如43F4124307108902B7A919F4D4D0770D。然后想象我想用这个 guid 获取记录,所以我写了一个这样的查询:

SELECT * FROM table WHERE guid = '43F4124307108902B7A919F4D4D0770D';

当然,这是行不通的,因为字符串被直接解释为一个 blob,而不是转换为它的十六进制值。我看了here,但找不到任何看起来像采用十六进制字符串并将其转换为blob的方法的东西。

4

1 回答 1

34

在写这个问题时,我找到了答案。我只需要在字符串之前添加一个 X。像这样:

SELECT * FROM table WHERE guid = X'43F4124307108902B7A919F4D4D0770D';

我想我还是应该发布这个问题,因为没有“类似问题”回答这个问题。我正在寻找的不是函数,而是文字,当我意识到这一点时,我很快在这里找到了答案。

于 2013-11-05T08:21:37.027 回答