MySQL-mysql中数据存储成二进制如何搜索不区分大小写?

MySQL-mysql中数据存储成二进制如何搜索不区分大小写?

虐人心 发布于 2016-12-10 字数 203 浏览 1288 回复 3

由于数据保存为[BLOB - 8字节]二进制格式,搜索加上ucase也不生效,求解。

select * from file_list where ucase(filename) like '%TEST%'

目前数据库由于历史原因,没办法把字段改成TEXT类型。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜柠檬 2017-10-05 3 楼

使用 CONVERT()函数字段值转化为一个不区分大小写的字符集:

select * from file_list where CONVERT(filename USING latin1) like '%TEST%'

可以根据自己的情况来规定字符集。

夜无邪 2017-04-28 2 楼

二进制数据你是无法进行模糊查询的。建议重建一份冗余表或者利用Lucene等全文检索引擎将那个字段重建索引进行查询。

浮生未歇 2016-12-30 1 楼

提供一个不完美但是可以解决问题的方案:
将BLOB字段导出成TEXT格式,保存为表中的另外一个字段,
然后搜索的时候使用导出字段。