13

SQL ステートメントを使用してデータベース内のフィールド/エントリの数を取得するにはどうすればよいですか?

4

5 に答える 5

29

うーん、すべてのテーブルのすべてのフィールド? 標準 (mssql、mysql、postgres) を想定すると、information_schema.columns に対してクエリを発行できます。

  SELECT COUNT(*) 
  FROM INFORMATION_SCHEMA.COLUMNS 

またはテーブルごとにグループ化:

  SELECT TABLE_NAME, COUNT(*) 
  FROM INFORMATION_SCHEMA.COLUMNS 
  GROUP BY TABLE_NAME

複数のスキーマが同じ DB に同じテーブル名を持つ場合、スキーマ名も含める必要があります (例: dbo.Books、user.Books、company.Books など)。そうしないと、間違った結果が得られます。したがって、ベストプラクティスは次のとおりです。

SELECT TABLE_SCHEMA, TABLE_NAME, COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS 
GROUP BY TABLE_SCHEMA, TABLE_NAME
于 2009-06-23T16:35:19.783 に答える
4

これを試してください。これによりビューが除外されます。ビューが必要な場合は where 句を省略します

  select count(*) from information_schema.columns c
join information_schema.tables t on c.table_name = t.table_name
and t.table_type = 'BASE TABLE'
于 2009-06-23T16:36:05.540 に答える
1

これが必要なもののように聞こえます。

select CountOfFieldsInDatabase = count(*)
from   information_schema.columns
于 2009-06-23T16:36:56.960 に答える
0
select count(column_name) from information_schema.columns 
where table_name = **name of your table here **
于 2010-02-16T07:33:26.307 に答える
0

グーグルしている他の読者のために...

ユーザーにとって有用な非 SQL ソリューションがいくつかあります。ここでは、私が使用する 2 つを示します。

例 1: VBA にアクセスします。

'Microsoft Access VBA
Function Count_Fields(Table_Name As String) As Integer
    Dim myFieldCount As Integer
    Dim db As DOA.Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset(Table_Name, dbOpenDynaset)
    myFieldCount = rs.Fields.Count
    'return the count
    Count_Fields = myFieldCount
    'tidy up
    Set rs = Nothing
    Set db = Nothing
End Function

例 2: PHP 5.1:

    <?php
    // PHP5 Implementation - uses MySQLi.
    function countFields ($tableName) { 
    $db = new mysqli('myserver.me.com', 'user' ,'pass', 'databasename');
    if(!$db) {
        echo 'ERROR: Could not connect to the database.';
        } 
    else {
        $rs->$db->query("SELECT * FROM ".$tableName.");
        $fieldCount = $rs->field_count;
        }
    return $fieldCount;
?>

上記のタイプミスを許してください - 誰かがこれが役に立つことを願っています

于 2011-02-27T19:09:06.187 に答える