我试图找到所有不以 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
给我错误

查找与 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 - 如何在图像/varbinary 字段中搜索以二进制模式开头的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6901591/

10-10 13:08