Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pencarian lambat dengan kueri indeks LIKE% MYSQL

OR kata kunci membuat pengoptimal MySQL gila.

Anda dapat mencoba sesuatu seperti ini.

SELECT name FROM table WHERE lang_index='en' AND name LIKE 'myname%'
UNION
SELECT name FROM table WHERE lang_index='en' AND enam LIKE 'myname%'

Atau Anda mungkin mempertimbangkan pencarian FULLTEXT. Ini membutuhkan MyISAM atau versi MySQL 5.6 atau yang lebih baru.

EDIT *Sulit untuk mengetahui secara pasti apa yang terjadi dengan hal-hal pengoptimalan ini. Bisakah kamu mencoba ini? Ini akan melihat apakah pemilihan bahasa mengganggu Anda.

 SELECT name 
   FROM table 
  WHERE (name LIKE 'myname%' OR enam LIKE 'myname%')

Bisakah kamu mencoba ini?

SELECT name FROM table WHERE lang_index='en' AND name LIKE 'myname%'
UNION ALL
SELECT name FROM table WHERE lang_index='en' AND enam LIKE 'myname%'

Itu tidak akan memberikan hasil yang sempurna -- ia akan memiliki item nama duplikat -- tetapi akan melewatkan DISTINCT langkah deduplikasi dalam kueri Anda.

Anda juga dapat mencoba ini.

SELECT name 
  FROM table
 WHERE lang_index='en'
   AND id IN (
    SELECT id from table 
     WHERE (name LIKE 'myname%' OR enam LIKE 'myname%'))



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLAlchemy dan UnicodeDecodeError

  2. Mysql mengubah ' menjadi '?

  3. MySQL:Dapatkan nama kolom atau alias dari kueri

  4. JDBC - Pernyataan, Pernyataan Siap, Pernyataan Dapat Dipanggil, dan cache

  5. Panduan Merancang Basis Data Untuk Acara Kalender Dan Pengingat Di MySQL