クエリが制限されている場合に返される行の総数を返し、上位 10 件の結果を返すことができるようにしたいと考えています。私は次のようなものを探していると思います:
SELECT `n`.*, COUNT('id') AS `total`
FROM `table`
WHERE (name like '%search%')
LIMIT 10;
しかし、それは最初の行のみを返します。
SELECT n.*, total
FROM table n, (select count(*) total from table t2 where name like '%search%')
where name like '%search%'
LIMIT 10
SELECT n.*,
COUNT(select id from AStotalFROMtable(name like '%search%') ) as Total
AStotalFROMtable(name like '%search%') LIMIT 10;
また
読み取り:MySQL:LIMITを使用するときに行の総数を取得する
また、試してみてください
FOUND_ROWS()
-LIMIT句のあるSELECTの場合、返される行数はLIMIT句がない場合
SELECT SQL_CALC_FOUND_ROWS * FROM `table` WHERE name like '%
search%' LIMIT 10;
SELECT FOUND_ROWS();
最初のクエリは10行を返し、2番目のクエリは最初のクエリにLIMIT句がない場合に返される行数を返します。