sql >> Database >  >> RDS >> Mysql

SQL bestellen op sterkste LIKE?

Als je bedoelt dat col_1 relevanter is dan col_2 enzovoort, dan:

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]

Als je met de meeste kolomovereenkomst bedoelde, dan :

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. Londiste-replicatie met PostgreSQL 9.0

  2. MySQL INSERT ... ON DUPLICATE KEY UPDATE met django 1.4 voor bulk insert

  3. Hoe csv-datumformaat te converteren naar mysql db

  4. Kan iemand de Magentos Indexing-functie in detail uitleggen?