الحصول على عدد من الحقول في قاعدة بيانات مع بيان SQL؟

StackOverflow https://stackoverflow.com/questions/1033726

  •  06-07-2019
  •  | 
  •  

سؤال

وكيف أحصل على عدد من الحقول / مقالات في قاعدة بيانات SQL باستخدام الإعلان؟

هل كانت مفيدة؟

المحلول

وط ط ط كافة الحقول في كافة الجداول؟ على افتراض معايير (MSSQL، الخلية، بوستجرس) يمكنك إصدار استعلام على 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

نصائح أخرى

وهذه محاولة، وهذا سوف تستبعد جهات النظر، ومغادرة مكان جملة ما إذا كنت تريد مشاهدة

  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'

ويبدو أن هذا هو ما تحتاجه.

select CountOfFieldsInDatabase = count(*)
from   information_schema.columns

وفقط لأي القراء الآخرين الذين غوغلينغ ...

وهناك العديد من الحلول غير 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;
?>

ويرجى عذر أي خطأ مطبعي في ما سبق - نأمل هناك من يرى هذا مفيد

select count(column_name) from information_schema.columns 
where table_name = **name of your table here **
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top