与SQLite中的HEX()相反?

Eri*_*k B 16 sqlite hex

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

SELECT HEX(guid) FROM table;
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM table WHERE guid = '43F4124307108902B7A919F4D4D0770D';
Run Code Online (Sandbox Code Playgroud)

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

Eri*_*k B 24

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

SELECT * FROM table WHERE guid = X'43F4124307108902B7A919F4D4D0770D';
Run Code Online (Sandbox Code Playgroud)

我想我还是应该发布这个问题,因为"类似问题"没有回答这个问题.我一直在寻找的不是功能,而是一个文字,当我意识到这一点,我很快找到了答案在这里.

  • 你真的应该接受你自己的答案! (3认同)