4
グローバルLIMITが設定されていない場合に返される行の総数をカウントしようとしています。ここに私のクエリは次のようになります。LIMITのUNIONクエリ(UNION ALLではなく)のSQL_CALC_FOUND_ROWSおよびSELECT FOUND_ROWS()
SELECT SQL_CALC_FOUND_ROWS * FROM table1 WHERE [...]
UNION
SELECT * FROM table2 WHERE [...]
UNION
SELECT * FROM table3 WHERE [...]
UNION
SELECT * FROM table4 WHERE [...]
LIMIT 0,30
その後、私はすぐにSELECT FOUND_ROWS()
クエリでそれに従ってください。これは合計35行を返しますが、合計400行を返します。どのように私はUNION ALLを使用せずに行を数えることができますか?
calc_found_rowsあなたは労働組合をやっている時に壊れる問合せごとに動作します。実際には2つのクエリが1つに結合されているため、ユニオン全体ではなく、ユニオンで実行されたLASTクエリの検索された行しか取得できません。 –
この種のクエリで行数を達成する方法はありますか? – tim