Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Znajdź najbliższe pasujące ciągi i ich podciągi za pomocą zapytania SQL

Jedną z metod jest użycie like w order by :

order by (case when name like 'ATUL%' then 1
               when name like 'ATU%' then 2
               when name like 'AT%' then 3
               when name like 'A%' then 4
               else 5
          end)

Bardziej ogólną metodą jest również brutalna siła, ale może wyglądać tak:

order by (case when left(name, 9) = left('ATUL', 9) then 1
               when left(name, 8) = left('ATUL', 8) then 2
               when left(name, 7) = left('ATUL', 7) then 3
               when left(name, 6) = left('ATUL', 6) then 4
               when left(name, 5) = left('ATUL', 5) then 5
               when left(name, 4) = left('ATUL', 4) then 6
               when left(name, 3) = left('ATUL', 3) then 7
               when left(name, 2) = left('ATUL', 2) then 8
               when left(name, 1) = left('ATUL', 1) then 9
          end)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. użyj IFNULL w laravel

  2. AR otrzymuj własne posty i posty znajomych

  3. Przechowywanie obrazów w systemie plików jako pliki lub w polu bazy danych BLOB jako pliki binarne

  4. Wstawianie zbiorcze PHP

  5. Aktualizacja SQL z tabeli losowych imion