Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đặt hàng SQL bằng LIKE mạnh nhất?

Nếu ý của bạn là col_1 có liên quan hơn col_2, v.v. thì:

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]

Nếu bạn muốn đối sánh cột nhất thì:

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. Dữ liệu phân cấp - Mô hình tập hợp lồng nhau:MySql

  2. Cách tìm công cụ lưu trữ bảng tạm thời của MySQL

  3. mysql_result () mong đợi tham số 1 là tài nguyên, boolean đã cho

  4. MySQL sao chép hiệu quả tất cả các bản ghi từ bảng này sang bảng khác

  5. Cách sử dụng .htaccess cho các liên kết đẹp