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

Urutan MySQL berdasarkan kecocokan terbaik

Untuk melakukannya dengan cara pertama (mulai kata, di tengah kata, akhiri kata), coba seperti ini:

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY
  CASE
    WHEN word LIKE 'searchstring%' THEN 1
    WHEN word LIKE '%searchstring' THEN 3
    ELSE 2
  END

Untuk melakukannya dengan cara kedua (posisi string yang cocok), gunakan LOCATE fungsi :

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY LOCATE('searchstring', word)

Anda mungkin juga menginginkan tie-breaker jika, misalnya, lebih dari satu kata dimulai dengan hab . Untuk melakukannya, saya sarankan:

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY <whatever>, word

Untuk beberapa kata yang dimulai dengan hab , kata-kata yang dimulai dengan hab akan dikelompokkan bersama dan diurutkan berdasarkan abjad.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migrasi Langsung Menggunakan Replikasi MySQL

  2. Bagaimana Fungsi FROM_BASE64() Bekerja di MySQL

  3. Cara Mencadangkan Basis Data Terenkripsi dengan Server Percona untuk MySQL 8.0

  4. Panggil ke fungsi anggota execute() pada boolean di

  5. 10 alasan untuk tetap menggunakan MySQL