web-dev-qa-db-ja.com

1つのクエリでカウントとその他のレコードを選択します

私は次のクエリを持っています

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
16
developer

次のように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なしであるかもしれません

17
Cristian Boariu

あなたは試すことができます

select main_cat_name,cat_url,
COUNT(*) OVER () AS total_count
from mf_main
order by main_cat_name

MySQLがASを受け入れるかどうかわからない場合は、受け入れない場合は削除してください。

4
Peter Lang
select count(cat_id), main_cat_name, cat_url 
from mf_main
group by main_cat_name, cat_url
order by main_cat_name
1
Anwar Chandra

WHEREクエリを使用せず、GROUP BYを使用するなど、他の方法で出力を制限しない場合、結果の行数はテーブルの行数と一致するため、データベースドライバ固有のメソッドを使用して行を検索できます。カウント、例えば mysql_num_rows PHPの場合

0
HardQuestions

すでにselectステートメントを作成したら

num_rowsとしてのカウントのnum_rowsレコードがすでにあります

0
zero8