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

Cara mencari di dalam tabel SQL untuk sebuah frase

Masalah salah eja sulit, jika bukan tidak mungkin, untuk dipecahkan dengan baik di MySQL murni.

Beberapa kolom FULLTEXT pencarian tidak terlalu buruk.

Permintaan Anda akan terlihat seperti ini ...

 SELECT column, column
   FROM table
  WHERE MATCH(Company, FirstName, LastName, whatever, whatever) 
      AGAINST('search terms' IN NATURAL LANGUAGE MODE)

Ini akan menghasilkan banyak hasil, diurutkan berdasarkan tebakan MySQL yang paling mungkin terkena terlebih dahulu. Tebakan MySQL tidak bagus, tapi biasanya cukup.

Anda memerlukan FULLTEXT indeks yang cocok dengan daftar kolom di MATCH() . Anda ayat. Membuat indeks itu terlihat seperti ini.

ALTER TABLE book 
ADD FULLTEXT INDEX Fulltext_search_index_1 
    (Company, FirstName, LastName, whatever, whatever);

Komentar dalam pertanyaan Anda meskipun, Anda hanya perlu indeks untuk grup kolom yang akan Anda cari.

20K baris tidak akan menjadi beban besar pada perangkat keras server kuno mana pun.

Salah eja:Anda dapat mencoba SOUNDEX() , tetapi ini adalah algoritme awal abad ke-20 yang dirancang oleh Sistem Bell untuk mencari nama orang dalam bahasa Inggris Amerika. Ini dirancang untuk mendapatkan banyak hit positif palsu, dan itu benar-benar lebih bodoh daripada seember batu.

Jika Anda benar-benar membutuhkan koreksi ejaan, Anda mungkin perlu menyelidiki Sphinx.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jumlahkan tanggal dalam hitungan menit dengan MySQL

  2. Mengelompokkan beberapa pernyataan Mysql untuk mengambil jumlah beberapa status

  3. Nilai kotak centang ke dalam kueri mysql

  4. Bagaimana cara mengelompokkan bidang tanggal untuk mendapatkan hasil triwulanan di MySQL?

  5. Menampilkan data grafik dari database