Не, не в общ смисъл, не вярвам, че дори 5.6 (последната версия, когато този отговор беше написан за първи път) има тази функционалност. Струва си да се отбележи, че 8.0.13 и по-нови вече поддържат функционални индекси , което ви позволява да постигнете това, от което се нуждаете, без описания по-долу метод за задействане.
Ако използвате по-стара версия на mysql
, е възможно е да се използват само водещите част от колона (тази функционалност съществува от дълго време), но не една, започваща от втория или следващите символи, или друга по-сложна функция.
Например, следното създава индекс, използвайки първите пет знака на име:
create index name_first_five on cust_table (name(5));
За по-сложни изрази можете да постигнете подобен ефект, като имате друг колона с индексируемите данни в нея, след което се използват тригери за вмъкване/актуализация, за да се гарантира, че е попълнена правилно.
Освен загубата на пространство за излишни данни, това е почти същото.
И въпреки че технически нарушава 3NF, това е смекчено от използването на тригери за поддържане на данните в синхронизиране (това е нещо, което често се прави за допълнителна производителност).