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

Pesan SQL dengan LIKE terkuat?

Jika yang Anda maksud adalah col_1 lebih relevan daripada col_2 dan seterusnya, maka :

select *
      ,case when col_1 like '%$keyword%' then 1
            when col_2 like '%$keyword%' then 2
            when col_3 like '%$keyword%' then 3
       end as [priority]
  from table_name
 where col_1 like '%$keyword%'
    or col_2 like '%$keyword%'
    or col_3 like '%$keyword%'
 order by [priority]

Jika yang Anda maksud adalah kolom yang paling cocok maka :

select *
      ,(case when col_1 like '%$keyword%' then 1 else 0 end) +
      ,(case when col_2 like '%$keyword%' then 1 else 0 end) +
      ,(case when col_3 like '%$keyword%' then 1 else 0 end) as [priority]
  from table_name
 where col_1 like '%$keyword%'
    or col_2 like '%$keyword%'
    or col_3 like '%$keyword%'
 order by [priority] desc


  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 BERGABUNG dengan tabel kategori untuk orang tua dalam kueri SQL?

  2. Bagaimana cara mengubah susunan default tabel?

  3. MYSQL mendeklarasikan variabel

  4. MySQL Beberapa Kiri Bergabung

  5. Apakah masuk akal untuk menggunakan indeks yang memiliki kardinalitas rendah?