我正在尝试查找所有不以 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/