mysql max函数不走索引_mysql max函数不能用在where条件中的案例

案例背景:

版主在"mysql表的字符集uft8转换成gbk测试"一文中,blog位置

见:"http://blog..net/zengxuewen2045/article/details/51229893,需要实现查找表中CUSTOMER_NAME

字段最大长度等于22个字符的记录,将max(char_length(CUSTOMER_NAME))=22直接放在where条件中,但执行报

错。

(product)root@localhost [lots]> select CUSTOMER_NAME from t_order where max(char_length

(CUSTOMER_NAME))=22;

ERROR 1111 (HY000): Invalid use of group function

分析处理:

上面提示分组函数的无效使用,需要另外找其它方法来实现需求,网上查找,参考

http://www.shangxueba.com/jingyan/1596738.html的处理方法,实际上是用带分组功能的子查询来实现。

将SQL改成如下:

select CUSTOMER_NAME from (select CUSTOMER_NAME,max(char_length(CUSTOMER_NAME)) as maxlength from

t_order group by CUSTOMER_NAME) tmp where tmp.maxlength=22

即正常返回结果。

你可能感兴趣的:(mysql,max函数不走索引)