Một chỉ mục trên trường đảo ngược sẽ là giải pháp, một số nghĩ như:
create index idx_reverse on table ( reverse( field ) );
select * from table where reverse(field) like 'txet%';
nhưng MySQL không thay đổi chỉ mục trên các biểu thức, chỉ trên các cột:
đây là Cú pháp tạo chỉ mục của MySQL :
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[index_type]
ON tbl_name (index_col_name,...)
[index_option] ...
Đây là cú pháp tạo chỉ mục của postgres :
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] name ON table [ USING method ]
( { column | ( expression ) } [ opclass ] [, ...] )
...
A làm việc xung quanh có thể được tạo trường thứ hai được lập chỉ mục (trường -> dleif) và một mysql kích hoạt để giữ trường đã đảo ngược:
alter table my_table add column dleif ...;
create index idx_reverse on my_table ( dleif );
Create Trigger `reverse_field` Before Update on `my_table` for each row BEGIN
set new.dleif = reverse( new.field );
END;
select * from table where dleif like reverse('%text');