MySQL-mysql中数据存储成二进制如何搜索不区分大小写?
由于数据保存为[BLOB - 8字节]二进制格式,搜索加上ucase也不生效,求解。
select * from file_list where ucase(filename) like '%TEST%'
目前数据库由于历史原因,没办法把字段改成TEXT类型。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 CONVERT()函数字段值转化为一个不区分大小写的字符集:
select * from file_list where CONVERT(filename USING latin1) like '%TEST%'
可以根据自己的情况来规定字符集。
二进制数据你是无法进行模糊查询的。建议重建一份冗余表或者利用Lucene等全文检索引擎将那个字段重建索引进行查询。
提供一个不完美但是可以解决问题的方案:
将BLOB字段导出成TEXT格式,保存为表中的另外一个字段,
然后搜索的时候使用导出字段。