簡単に言えば、特定の行の前にある行の数をどのように数えることができますか。増分IDを使用していますが、行がランダムに削除されるため、IDが何であるかを確認するだけでは機能しません。CodeIgniterを使用してMySQLの特定の行の前にある行の数を数えるには?
私は、例えば30行あり、名前(または何か)に基づいて1つを選択しましたが、その前に何行ありますか?それは16、1、12、または何でもかまいません。
私はMySQLとCodeIgniterを使用しています。
簡単に言えば、特定の行の前にある行の数をどのように数えることができますか。増分IDを使用していますが、行がランダムに削除されるため、IDが何であるかを確認するだけでは機能しません。CodeIgniterを使用してMySQLの特定の行の前にある行の数を数えるには?
私は、例えば30行あり、名前(または何か)に基づいて1つを選択しましたが、その前に何行ありますか?それは16、1、12、または何でもかまいません。
私はMySQLとCodeIgniterを使用しています。
私はあなたの主キー列は、データ型の整数
削除された行はこのように仕事をする必要があり、再びに充填されることはありません、それはauto_increment
列だと仮定すると、
SELECT COUNT(*) FROM `table`
WHERE id < (SELECT id FROM `table` WHERE `conditions are met for specific row`)
を持っていると仮定します。私は「連鎖方法を」使用していて、そのためにあなたはCI 2.
あなた最初のニーズにデフォルトでPHP5を必要とするどのよう
$id = $this->db->get('users')->where("name", "John")->id;
$rows = $this->db->get('users')->where("id < ", $id)->num_rows();
return $rows;
注意:お使いのモデルに
SELECT COUNT(*) FROM table WHERE id_column < your_selected_row_id;
最初の行である "backwards"をカウントするレコードのIDを取得し、ユーザーと呼ばれるテーブルを考慮して、フィルタリングしている列が「name」であり、検索する行にJohnという名前の値があることを確認します。
2行目は、あなたの行数を与えること「ID < 数は」数は、あなたが最初のクエリから得たIDがどこにあるか返されるクエリー。たぶん、両方の線をつなげることさえできます。