Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql:पोस्टफिक्स-खोज के लिए कुशल तरीका (जैसे '% टेक्स्ट' उर्फ। उपसर्ग वाइल्डकार्ड)?

रिवर्स फील्ड पर एक इंडेक्स समाधान होगा, कुछ ऐसा सोचते हैं:

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] ...

यह है पोस्टग्रेज क्रिएट इंडेक्स सिंटैक्स :

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. क्या हमारे पास MySQL में विकल्प के रूप में टेबल का नाम हो सकता है?

  2. कैसे mysql में सिर्फ हटाई गई पंक्तियों को पुनर्प्राप्त करने के लिए?

  3. MySQL क्वेरी से दोहराए गए परिणाम हटाएं

  4. पंक्तियों का चयन कैसे करें जहां कोडइग्निटर के ActiveRecord का उपयोग करके कॉलम मान पूर्ण नहीं है?

  5. RODBC में MySQL के लिए चारसेट कैसे सेट करें?