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