sql >> データベース >  >> RDS >> Mysql

SQLクエリを使用して最も近い一致する文字列とその部分文字列を検索します

    1つの方法は、likeを使用することです 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)
    

    より一般的な方法もブルートフォースですが、次のようになります。

    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. PDO_OCI-CLOBフィールドに

    2. html + php(codeIgniter)でツリーをレンダリングする方法

    3. データベースを文書化する方法

    4. IOException:ネットワークアダプタが接続を確立できませんでした