我面临着MySQL的问题,解压函数。
我有一个名为user的表,user_details存储压缩值。在这种情况下,在搜索user_details中的值之前,我必须解压缩它。
但问题是在我做了解压后,搜索就变得敏感起来。
就像。。例如
如果我尝试使用sql,它将只搜索包含大写测试词的值,而忽略小写测试词
选择*FORM user,在其中解压缩(用户详细信息)如'%TESTING%'。
我要不区分大小写的搜索。

最佳答案

但问题是在我做了解压后,搜索就变得敏感起来。
这是because COMPRESS()“压缩字符串并将结果作为二进制字符串返回。”(emphasis mine)
对二进制字符串执行LIKE操作时,将执行binary comparison(区分大小写)。
您可以通过在CAST()语句周围加上COMPRESS()来规避这个问题。
但你可能一开始就不该这么做。这是一种极其低效的搜索海量数据的方法。MySQL必须为这个操作解压每一行,并且没有机会使用任何内部优化方法,比如索引。
首先不要使用COMPRESS()

08-25 12:02
查看更多