sql - 如何在 image/varbinary 字段中搜索以二进制模式开头的记录

标签 sql image sql-server-2005 search magic-numbers

我正在尝试查找所有不以 magic number 开头的图像ff d8 ff e0(jpg 的签名)根据 MSDN我应该能够对我的数据使用 patindex 。然而

SELECT TOP 1000 [cpclid]
FROM [cp]
where patindex('FFD8FFE0%', cpphoto) = 0 -- cpphoto is a column type of image

给我错误

Msg 8116, Level 16, State 1, Line 1 Argument data type image is invalid for argument 2 of patindex function.

查找与 ff d8 ff e0 魔数(Magic Number)不匹配的记录的正确方法是什么?

更新:

Here is a link测试您的任何建议。

<小时/>

罗斯的解决方案最终通过对查询内容进行一些调整而发挥了作用。

SELECT [cpclid]
  FROM [cp]
where convert(varchar(max), cast(cpphoto as varbinary(max))) not like convert(varchar(max), 0xFFD8FFE0 ) + '%'
<小时/>

我找到了更好的解决方案,请参阅我的答案。

最佳答案

我发现了一个更简单、运行速度更快的解决方案。

SELECT [cpclid] 
FROM [cp]
where cast(cpphoto as varbinary(4)) <> 0xFFD8FFE0

关于sql - 如何在 image/varbinary 字段中搜索以二进制模式开头的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6901591/

相关文章:

javascript - 更改 <img> 的 src 属性并在加载时显示新图像

image - Matlab - 注册和裁剪来自两个不同来源的对齐图像

sql - 事务内截断表

sql-server-2005 - 是否可以在没有 DCOM 权限的情况下从 SQL Server 2005 中的 MSDB 数据库中删除 SSIS 包?

mysql - 通过映射表(Sql)获取映射列名

sql - 基于父记录约束子记录

sql - 整数列是否包含值

sql - 将数据并行插入 SQL Server 的最佳方法是什么?

css - 可查看的文本和图像网站导航菜单 - CSS

sql-server-2005 - where 子句中的 switch case