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

MySQLで最も一致する行を見つける(InnoDB)

    LIKEを使用するだけですが、おそらく以前とは逆です。

    select query
    from table1
    where 'engine/mail/key' like concat(query,'%')
    order by length(query) desc
    limit 1
    

    結果:

    mysql> select * from query;
    +-------------+
    | query       |
    +-------------+
    | engine      | 
    | engine/pdf  | 
    | engine/mail | 
    +-------------+
    3 rows in set (0.00 sec)
    
    mysql> select query from query 
           where 'engine/mail/key' like concat(query,'%') 
           order by length(query) desc 
           limit 1;
    +-------------+
    | query       |
    +-------------+
    | engine/mail | 
    +-------------+
    1 row in set (0.01 sec)
    



    1. PostgreSQL、レシピで材料を計算するための複雑なクエリ

    2. MySQLでn番目のランクを見つける方法は?

    3. TSQLコードからWebサービスを呼び出すことはできますか?

    4. PHPPDOの複数選択クエリが一貫して最後の行セットを削除する