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

配列内の正確なシーケンスに基づいてデータをプルする必要があります

    アイデアは、配列内のそれぞれの位置で結果を並べ替えることです。この場合、MySQL FIND_IN_SET 関数はあなたを助けることができます。

    ステートメントごとに次の順序を追加できます:

    ORDER BY FIND_IN_SET(car.id,'3,10,7')
    

    注: 同等のcake php mysqlのステートメントごとにこの順序を変換する必要があります クエリ。

    FIND_IN_SET

    サンプル入力:

    クエリ:

    SELECT *
    FROM cars
    
    id
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    

    出力:

    クエリ:

    SELECT *
    FROM cars
    WHERE cars.id IN (3,10,7)
    ORDER BY FIND_IN_SET(cars.id,'3,10,7')
    
    id
    3
    10
    7
    

    SQLFIDDLEデモはこちらを確認してください

    編集:

    CAKE PHP syntaxがわかりません mysqlクエリの構築において。

    しかし、cake php mysqlの同等のクエリ そのようなものかもしれません:

    $cars = $this->car->find('all', array(
            'conditions' => array(
                'car.id' => array(3, 10, 7)
            ),
            'limit' => 3, 
            'order' => array(FIND_IN_SET('car.id' , '3,10,7'))
        ));
    



    1. SQL Serverでマテリアライズドビューを作成するにはどうすればよいですか?

    2. MySQLプリペアドステートメント-最大長1000文字

    3. コミットされたスナップショットアイソレーションを読む

    4. PythonMySQLdbモジュールでカーソルを再利用する必要があります