【发布时间】:2020-04-01 06:44:12
【问题描述】:
我的 JAVA 代码使用下面的 select 语句来获取数据。 Col_1 是一个索引列,但查看 EXPLAIN,我看到这个 select 语句没有使用索引。如果我删除 UPPER 函数,它正在使用索引,但我不想更改我的 java 代码。
SELECT *FROM MY_TABLE WHERE UPPER(COL_1) = UPPER(input_value);
在 ORACLE 中,我们可以使用以下语句创建功能索引,但以下索引创建语句在 MySQL 中不起作用(8.0.12-commercial ,innodb_version 8.0.12)
CREATE INDEX MY_INDEX ON MY_TABLE (UPPER(COL_1));
【问题讨论】:
-
您确定您使用的是区分大小写的排序规则吗?
标签: mysql sql database indexing