私はこのmysqlクエリを持っています:
SELECT Files.GUID, Files.Name, Files.Type, Files.Visibility, Files.CreationDate, Files.OwnerUser, Date, BackupsCount
FROM Files
LEFT JOIN (
SELECT FileGUID, Date, COUNT(*) AS BackupsCount
FROM Versions
GROUP BY FileGUID
) Versions ON Files.GUID = Versions.FileGUID
WHERE Files.ParentFolder = '96251A8B-B2A8-416B-92D7-3509E6A645C7'
ORDER BY Files.Type DESC, CreationDate ASC
LIMIT 0, 50
LIMIT ディレクティブが存在しない場合に、このクエリが返すレコードの数を知りたいのですが、ググったところSELECT SQL_CALC_FOUND_ROWS
、追加する必要があることがわかりました。SELECT FOUND_ROWS();
私の問題は次のとおりです:私はそれを動作させることができませんでした:
SELECT SQL_CALC_FOUND_ROWS * FROM (
SELECT Files.GUID, Files.Name, Files.Type, Files.Visibility, Files.CreationDate, Files.OwnerUser, Date, BackupsCount
FROM Files
LEFT JOIN (
SELECT FileGUID, Date, COUNT(*) AS BackupsCount
FROM Versions
GROUP BY FileGUID
) Versions ON Files.GUID = Versions.FileGUID
WHERE Files.ParentFolder = '96251A8B-B2A8-416B-92D7-3509E6A645C7'
ORDER BY Files.Type DESC, CreationDate ASC
LIMIT 0, 50)
-- Find total rows
SELECT FOUND_ROWS()
これが良い考えであると仮定すると (つまり、1 つのクエリと 2 つの個別のクエリを実行することを意味します)、このクエリを使用するにはどうすればよいでしょうか?FOUND_ROWS()