Mysql
 sql >> база данни >  >> RDS >> Mysql

Поръчайте SQL от най-силния LIKE?

Ако имате предвид, че col_1 е по-подходящ от col_2 и така нататък, тогава :

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]

Ако имахте предвид с най-много съвпадения в колоните, тогава :

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. може couchdb да прави цикли

  2. правилен начин за вмъкване на данни с идентификатор като автоматично увеличение в mysqli

  3. Как да добавя mode=mysql към вградената H2 DB в Spring Boot 1.4.1 за @DataJpaTest?

  4. MySql Connector 6.8.2 RC, Entity Framework 6 и Code First

  5. ще покаже състоянието на таблицата, показва точните редове в таблицата?