sqlite - 在 SQLite 中搜索 blob 字段
问题描述
我的数据库中有存储 BLOB 的列。我想运行一个查询来检查表中是否存在特定的字节数组值。该值为b'\xf4\x8f\xc6{\xc2mH(\x97\x9c\x83hkE\x8b\x95'
(python 字节)。
我试图运行这个查询:
SELECT * from received_message
WHERE "EphemeralID"
LIKE HEX('\xf4\x8f\xc6{\xc2mH(\x97\x9c\x83hkE\x8b\x95');
但是我得到 0 个结果,尽管我 100% 确定我将此值存储在数据库中。
我的查询有问题吗?
解决方案
你的搜索字符串有点奇怪——你似乎有一些复杂的东西,比如 { 和 (。也许你应该按照它的存储方式搜索 blob?
从 Sqlite 文档:
BLOB 文字是包含十六进制数据的字符串文字,前面有一个“x”或“X”字符。示例:X'53514C697465'
所以也许对你想要的十六进制值的 ascii 表示做一个喜欢?如果您的 sqlite 将其存储为大写,则可能从寻找 f48f 或 F48F 开始。
推荐阅读
- atom-editor - 如何在 Atom 中运行文件?
- node.js - 最后一个进程结束后无法重新运行 child_process.spawn()
- sql - 如何在 Laravel 中执行 join 语句,然后通过 2 个特定用户 ID 查询结果,然后对特定列求和
- i18next - 无法创建正确的 i18next 实例来使用它反应组件
- jenkins - 在 Jenkins 中安装 npm peerDependencies
- mysql - MySQL bulk INSERT .. ON DUPLICATE KEY UPDATE 同时指定个别列
- awk - grep file1 到 file2 不改变顺序
- bash - 在 GNU Bash 4.2.46(2) 中捕获列的单个单元格
- javascript - 我应该如何设计卡片的样式,以便每行可以有 3 张卡片?
- python - 直方图将两个数据集相互参考