Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql:ефективен начин за търсене с постфикс (като '%text', известен още като заместващ знак за префикс)?

Индекс над обратно поле ще бъде решението, някои мислят като:

create index idx_reverse on table ( reverse( field ) );
select * from table where reverse(field) like 'txet%';

но MySQL не позволява индексиране върху изрази, а само върху колони:

това е синтаксис за създаване на индекс на MySQL :

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (index_col_name,...)
    [index_option] ...

Това е синтаксис за създаване на индекс на postgres :

CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] name ON table [ USING method ]
    ( { column | ( expression ) } [ opclass ] [, ...] )
    ...

Анара може да се създаде индексирано второ поле (поле -> dleif) и mysql задействане за да запазите обърнато поле:

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');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вътрешният цикъл while не работи

  2. Копирайте mysql база данни от отдалечен сървър на локален компютър

  3. Sql избира елементите, съответстващи на масива, и ги показва в ред

  4. Как да вмъкнете, изтриете, изберете, актуализирате стойности в datagridview в C# с помощта на MYSQL

  5. използвайте условието If else за избор на колоната в mysql?