問題タブ [sql-calc-found-rows]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - cakephp と SQL_CALC_FOUND_ROWS
SQL_CALC_FOUND_ROWS をクエリに追加しようとしています (これはページネーション用ではないことに注意してください)
これを CakePHP クエリに追加しようとしていることに注意してください。現在持っているコードは以下のとおりです。
テーブル'fields'=>array('SQL_CALC_FOUND_ROWS','
に適用しようとするため、これは明らかに機能しないことに注意してください。たとえば、カテゴリSQL_CALC_FOUND_ROWSSQL_CALC_FOUND_ROWS
SELECT
.
,
とにかくこれを行うことはありますか?どんな助けでも大歓迎です、ありがとう。
php - PHPでMySQLFound_Rows()を使用する方法は?
パフォーマンスの問題があるため、 Count()の実行は避けようとしています。(つまり、SELECT COUNT()FROM Users)
phpMyAdminで次のコマンドを実行すると、問題ありません。
行数を返します。つまり、ユーザー数。
ただし、PHPで実行している場合、これを行うことはできません。
PHPは2つのクエリを渡すことを好まないようです。では、どうすればそれを行うことができますか?
mysql - phpmyadminのSQL_CALC_FOUND_ROWSを無効化または回避する方法
phpmyadminを介して処理する場合SELECT
、舞台裏で、が追加されることがありLIMIT 0,30
ます。または、にがスローSQL_CALC_FOUND_ROWS
されるSELECT
ため、がなかった場合の結果の数を知ることができますLIMIT
。
残念ながら、SQL_CALC_FOUND_ROWS
時々追加するには、私が予想していたよりもはるかに多くの処理が必要になります(つまり、元の汚染されていないクエリを実行した場合よりも多くの処理が必要になります)。
phpmyadminによるクエリの変更を無効にするグローバル設定オプションはありますか?
phpmyadminの変更を防ぐために、クエリごとにどのようなトリックを使用できますか?
mysql - Mysql SQL_CALC_FOUND_ROWS とページネーション
したがって、500 万行を少し超えるテーブルがあります。SQL_CALC_FOUND_ROWS を使用すると、クエリが永久にハングします。私がそれを取り出すと、クエリは LIMIT ,25 で 1 秒以内に実行されます。私の質問は、ページネーションの理由から、合計行数を取得する代替手段はありますか?
php - mySQL での FOUND_ROWS() の間違った結果
合計6行あります。クエリを実行すると (テーブルから SELECT * と言う)、
- LIMIT 3 => FOUND_ROWS() は 3 を返します => 3 行が取得されます
- LIMIT 1, 3 => FOUND_ROWS() は 4 を返します => 3 行が取得されます
- LIMIT 2, 3 => FOUND_ROWS() は 5 を返します => 3 行が取得されます
- LIMIT 3, 3 => FOUND_ROWS() は 6 を返します => 3 行が取得されます
- LIMIT 4, 3 => FOUND_ROWS() は 6 を返します => 2 行が取得されます
この奇妙な動作の原因は何ですか?
SQL クエリ
またはブロックで:
mysql - Codeigniter+MySql: このクエリに COUNT を統合して、ページネーション時の二重クエリを回避します
Codeigniter (IMHO) のページネーションには、フィルタ (先頭の文字、カテゴリなど) を使用する場合の実装を容易にするための優れた機能が欠けているため、ページネーションは完全に機能し、機能していますが、2 つのクエリを実行していますが、それらの唯一の違いは次のとおりです。それらの1つは最後にLIMIT(およびOFFSET)があります。この2番目のクエリが必要なのは、行の総数を取得する必要があり、「メイン」クエリではLIMITがあるため取得できないため、限られた数の行が返されるためです。
QUERY 1 (「メイン」クエリ)
QUERY 2 (これは行をカウントします)
モデルコード(面倒です、私は知っています:)):
したがって、実際に必要なのは、これら2つの複雑なクエリを実行する代わりに、より複雑になっても1つのクエリを作成したいのですが、そこから合計行数を取得したいということです。
私は sql_calc_found_rows について何かを読みましたが、私はそれにまったく慣れていないため実装できませんでした。また、データベースに追加の負担をかけるため、まれにのみ使用する必要があると多くの人が言っています。
どんな助けでも大歓迎です!
php - SQLクエリのカスタムORDERBYロジック
私は次の問題に対するエレガントな解決策を探しています:
現在、ページ番号制限付きのORDERBY日付のエントリを一覧表示するページがあります。これが私のコードの抜粋です:
テーブルスキーマ:
これは、ページ形式でリストエントリを処理するための非常に標準的な方法です。私の問題は、クライアントが特別注文を望んでいることですhgroup_id
。外部キーの特定の値を持つエントリが上部に表示されることを望んでいます。
私が考えることができる2つの解決策は次のとおりです。
- リスト全体をロードし、PHPを使用して並べ替えてから、PHPを使用してページ付けを処理します。
- 2つのクエリを実行します。1つは目的の外部キーを持つエントリを選択し、もう1つは他のすべての全体を選択します。結果セットをマージし、PHPを使用してページ付けを処理します。
いずれにせよ、ページネーションに対する私のエレガントな単一クエリSQL_CALC_FOUND_ROWSアプローチは機能しません。ORDER_BY句で使用できるMySQLの「魔法」があるかどうか知りたいですか?
上記が理にかなっていることを願っています。
java - Java、prepareStatement、SQL_CALC_FOUND_ROWS、FoundRows() の仕組み
私はデータベースからページネーションを行おうとしていますが、これまでのところ、制限を使用したい場合は使用する必要があることがわかりましたSQL_CALC_FOUND_ROWS
。
ただし、Java では、これを呼び出す方法を理解するのにいくつか問題があります。
1 つの prepareStatement で実行できますか、それとも複数の呼び出しを行う必要がありますか? 複数の呼び出しを行っている場合、MySQL はカウントの最後の呼び出しを参照していることをどのように認識しますか?
ありがとう。
php - 全文検索でのMySqlSQL_CALC_FOUND_ROWSの問題
フルテキストのインデックス付きテーブルをクエリする結果にページ付けを追加しようとしています。クエリは次のとおりです。
通常のクエリ
183行を返します。
ページ付けをしようとしています
1ページに8つのアイテムを表示したいので、意図したとおりに8行を返します。
その後
元のクエリの場合とは20
対照的に、アイテムを返します。183
何が原因なのかわかりません。これを手伝ってくれませんか。
ありがとう。
php - ログインページでのFOUND_ROWSの使用
ユーザーログインページ(phpを学ぶための基本的なトレーニング)を設定しようとしていますが、行数を数える部分に問題があると思うので、ページが機能していません(行数を確認します入力されたログインとパスワードが入力されたものと一致するuser_tableデータベースは=1)。
私はPDOにいますが、非推奨になっているものを使用したくないmysql_num_rows
か、少なくとも使用しないことをお勧めします。代わりに使いたいFound_rows
これが私のlogin_page.phpです:
{login,password}
次に、このlogin_verify.phpファイルに入力されたものが正しいかどうかを確認するphpファイルを次に示します。
問題がどこにあるかを知っている人がいれば、それは素晴らしいことです。
これはfound_rowsの誤用によるものだと思います。初めて使うので、何かひどい感じがしますが、それが何なのかわかりません。