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

WP主题讨论 WP主题讨论 主题:1013 回复:2239

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

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

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

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

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

发布评论

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

支持 Markdown 语法,需要帮助?

评论(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格式,保存为表中的另外一个字段,
然后搜索的时候使用导出字段。