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

bagaimana menerapkan algoritma pencarian yang efektif saat menggunakan php dan database mysql?

Beberapa cara berbeda untuk melakukan ini:

Yang lebih cepat (dari segi kinerja) adalah:select * FROM Table where keyword LIKE '%value%' Trik yang satu ini adalah penempatan % yang merupakan wildcard, yang mengatakan cari semua yang diakhiri atau dimulai dengan nilai ini.

Yang lebih fleksibel tetapi (sedikit) lebih lambat adalah fungsi REGEXP:

Select * FROM Table WHERE keyword REGEXP 'value'

Ini menggunakan kekuatan ekspresi reguler, jadi Anda bisa membuatnya serumit yang Anda inginkan. Namun, meninggalkan seperti di atas memberi Anda semacam "Google orang miskin", memungkinkan pencarian menjadi potongan-potongan bidang keseluruhan.

Bagian lengket masuk jika Anda mencoba mencari nama. Misalnya, baik akan menemukan nama "smith" jika Anda mencari SMI. Namun, keduanya tidak akan menemukan "Jon Smith" jika kolom nama depan dan belakang dipisahkan. Jadi, Anda harus melakukan beberapa rangkaian untuk pencarian untuk menemukan Jon OR Smith OR Jon Smith OR Smith, Jon. Ini benar-benar bisa menjadi bola salju dari sana.

Tentu saja, jika Anda melakukan semacam pencarian lanjutan, Anda harus mengkondisikan kueri Anda sesuai dengan itu. Jadi, misalnya, jika Anda ingin mencari alamat pertama, terakhir, maka kueri Anda harus menguji masing-masing:

SELECT * FROM table WHERE first LIKE '%value%' OR last LIKE '%value%' OR address LIKE '%value'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menetapkan gambar default default (no_pic.gif) php?

  2. loop kueri mysql

  3. Bagaimana cara menambahkan mode=mysql ke H2 DB yang disematkan di Spring Boot 1.4.1 untuk @DataJpaTest?

  4. Cara menggunakan hasil kueri sebagai nama kolom dalam pernyataan SELECT

  5. File my.cnf MySQL - Opsi yang ditemukan tanpa grup sebelumnya