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

Mysql Codeigniter Active Record-where_inクエリを実行して、正しい順序の結果を返すにはどうすればよいですか?

    配列内の順序で結果を並べ替えるには、次のようにします。

    $array_of_ordered_ids = array(4,5,2,6);
    

    番号の順序はすでにわかっているので、Mysql FIELD() 機能:

    ORDER BY FIELD(id, 4, 5, 2, 6);
    

    このような文字列を作成するには、 implodeを使用できます。

    $order = sprintf('FIELD(id, %s)', implode(', ', $array_of_ordered_ids));
    

    試してみてください:

    $array_of_ordered_ids = array(4,5,2,6);
    $this->db->where_in('id', $array_of_ordered_ids);
    $order = sprintf('FIELD(id, %s)', implode(', ', $array_of_ordered_ids));
    $this->db->order_by($order); 
    


    1. mysql完全結合エラー-#1054-'フィールドリスト'の不明な列'feesmaster.PAIDAMOUNT'

    2. MariaDBでのUUID()のしくみ

    3. HRデータベースの構築と保守

    4. MySQLのeとéの区別(e急性)-UNIQUEインデックス