Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सबसे मजबूत LIKE द्वारा SQL ऑर्डर करें?

यदि आपका मतलब है कि 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. एक्सेल डाउनलोड अटक गया 188kb

  2. लारवेल यूनिक्स सॉकेट के साथ एमएएमपी

  3. UNION का उपयोग करके MySQL व्यू बनाना

  4. mysql डेटाबेस में अरबी डेटा डालें

  5. MySQL डेटाबेस में डेटा डालें