私は次のクエリを持っています
select main_cat_name,cat_url from mf_main order by main_cat_name
これにより、テーブルのデータ全体が返されます。このテーブルの合計行数をカウントしたいのですが、別のクエリを使用して実行できますが、1つのクエリでそれらを使用するにはどうすればよいですか?
2つのデータが必要ですONE:-テーブルの行TWO:-1つのクエリでそれをどのように取得できるかをカウントします
これを試しましたが、正しいカウントが表示されますが、テーブルの最初の行のみが表示されます。
select count(cat_id),main_cat_name,cat_url from mf_main order by main_cat_name
次のようにGroupByを試すことができます。
SELECT count(cat_id), main_cat_name, cat_url FROM mf_main GROUP BY main_cat_name, cat_url ORDER BY main_cat_name
私が望む正しい解決策:
これはあなたが望むものです:)
SELECT x.countt, main_cat_name, cat_url FROM mf_main, (select count(*) as countt FROM mf_main) as x ORDER BY main_cat_name
Mysqlを使用する場合、私が行ったように「as」があります。他の人にとっては、dbは(Oracleのように)asなしであるかもしれません
あなたは試すことができます
select main_cat_name,cat_url,
COUNT(*) OVER () AS total_count
from mf_main
order by main_cat_name
MySQLがAS
を受け入れるかどうかわからない場合は、受け入れない場合は削除してください。
select count(cat_id), main_cat_name, cat_url
from mf_main
group by main_cat_name, cat_url
order by main_cat_name
WHEREクエリを使用せず、GROUP BYを使用するなど、他の方法で出力を制限しない場合、結果の行数はテーブルの行数と一致するため、データベースドライバ固有のメソッドを使用して行を検索できます。カウント、例えば mysql_num_rows
PHPの場合
すでにselectステートメントを作成したら
num_rowsとしてのカウントのnum_rowsレコードがすでにあります