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

クエリ結果を事前定義された順序で返す

    これが可能だとは思いませんでしたが、ここにブログエントリ が見つかりました。 それはあなたが求めているタイプのことをしているようです:

    SELECT id FROM table WHERE id in (7,2,5,9,8) 
    ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
    

    に異なる結果が得られます

    SELECT id FROM table WHERE id in (7,2,5,9,8) 
    ORDER BY FIND_IN_SET(id,"8,2,5,9,7");
    

    FIND_IN_SET idの位置を返します 与えられた2番目の引数では、上記の最初のケースでは、id 7の位置はセットの1の位置にあり、2は2の位置にあり、以下同様です。mysqlは内部的に次のように動作します

    id | FIND_IN_SET
    ---|-----------
    7  | 1
    2  | 2
    5  | 3
    

    次に、FIND_IN_SETの結果で並べ替えます 。



    1. Java EE WebアプリケーションからWindows認証を使用してSQLServerに接続できますか?

    2. PDOマルチクエリSQLSTATE[HY000]:一般的なエラー

    3. OracleDatabase19cでアーカイブログモードを有効にする方法

    4. Mysqlによる削除順序