MySQL के सभी टेबलों के लिए सभी कॉलम के नाम कैसे प्राप्त करें?


189

क्या सभी तालिकाओं से सभी स्तंभ नामों को प्राप्त करने का एक तेज़ तरीका है MySQL, सभी तालिकाओं को सूचीबद्ध किए बिना?


2
मुझे केवल डेटाबेस पर एक त्वरित अवलोकन की आवश्यकता है। यह एक app में कोड नहीं होने वाला है।
डाइटर

जवाबों:


304
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position

कि मैं क्या देख रहा था :-) अब तक एक ही सामान कर एक जावा एप्लिकेशन लिखा
डायटर

धन्यवाद! केवल कॉलम नाम पाने के लिए, इसका उपयोग करें: information_schema.columns से table_schema = 'your_db' ऑर्डर को table_name, ordinal_position
Phil Goetz

ठीक वही जो मेरे द्वारा खोजा जा रहा था ! धन्यवाद।
ज़ूकास्टोस

कॉलम नामों के सामने भरे हुए डेटा की गिनती कैसे प्राप्त करें? मेरे पास एक ही समस्या है प्लस डेटा काउंट
गुलाम मोहम्मद अकबरी

प्राथमिक कुंजी जानने के बारे में कैसे?
डेविड वालसर

48

MySQL में एक टेबल से सभी क्षेत्रों को सूचीबद्ध करने के लिए:

select * 
  from information_schema.columns 
 where table_schema = 'your_DB_name' 
   and table_name = 'Your_tablename'

27

बेहतर होगा कि आप सभी कॉलम नामों को आसानी से प्राप्त करने के लिए निम्नलिखित क्वेरी का उपयोग करें

Show columns from tablename


कभी-कभी आपको एक ऐसे समाधान की आवश्यकता होती है, जो सूचना पर निर्भर न
ब्रेडले एम। डेविस

26
SELECT * FROM information_schema.columns
WHERE table_schema = DATABASE()
ORDER BY table_name, ordinal_position

चूँकि मेरे पास टिप्पणी करने के लिए पर्याप्त प्रतिनिधि नहीं है, यहाँ निक नियम के उत्कृष्ट उत्तर पर एक मामूली सुधार (मेरे विचार में): के WHERE table_schema = 'your_db'साथ बदल रहा है WHERE table_schema = DATABASE()


वह मददगार है। यह हमेशा मुझे इस तरह से हार्डकोड चीजों की घोषणा करता है जब इसे टाला जा सकता है। धन्यवाद।
डेविड

17

इस विचार पर कि यह किसी और के लिए उपयोगी है, इससे आपको प्रत्येक तालिका में स्तंभों की अल्पविराम वाली सूची मिल जाएगी:

SELECT table_name,GROUP_CONCAT(column_name ORDER BY ordinal_position)
FROM information_schema.columns
WHERE table_schema = DATABASE()
GROUP BY table_name
ORDER BY table_name

नोट: अधिक संख्या में कॉलम और / या लंबे क्षेत्र के नामों के साथ तालिकाओं का उपयोग करते समय, group_concat_max_len सीमा से अवगत रहें , जिसके कारण डेटा छोटा हो सकता है।


1
मुझे यह पसंद है ... क्योंकि मैं आसानी से सभी कॉलम नामों को कॉपी कर सकता हूं।
जटाजोलजा

6
<?php
        $table = 'orders';
        $query = "SHOW COLUMNS FROM $table";
        if($output = mysql_query($query)):
            $columns = array();
            while($result = mysql_fetch_assoc($output)):
                $columns[] = $result['Field'];
            endwhile;
        endif;
        echo '<pre>';
        print_r($columns);
        echo '</pre>';
?>

1
2016 में इसे पढ़ने वाला कोई भी व्यक्ति - mysql_query पदावनत हो गया है। PHP के mysqli को आगे बढ़ाने के लिए सबसे अच्छा।
JCutting8

5

@Suganya द्वारा पोस्ट किए गए उत्तर के समान यह सीधे सवाल का जवाब नहीं देता है, लेकिन एक एकल तालिका के लिए एक तेज विकल्प है:

DESCRIBE column_name;

यह एक तालिका मुद्रित करेगा और न केवल तालिका के स्तंभ नाम।
k0pernikus

4

सवाल यह था:

क्या सभी तालिकाओं को सूचीबद्ध किए बिना, MySQL के सभी तालिकाओं से सभी COLUMN NAMES प्राप्त करने का एक तेज़ तरीका है?

प्रत्येक स्तंभ के लिए सभी जानकारी प्राप्त करने के लिए एसक्यूएल

select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position

SQL सभी COLAMN नाम पाने के लिए

select COLUMN_NAME from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position

3

मैंने यह मूर्खतापूर्ण बात बहुत पहले लिखी थी और अभी भी वास्तव में इसका उपयोग अभी और फिर:

https://gist.github.com/kphretiq/e2f924416a326895233d

असल में, यह एक "शो टेबल" करता है, फिर प्रत्येक टेबल पर एक "DESCRIBE" होता है, फिर इसे मार्कडाउन के रूप में बाहर निकालता है।

बस "यदि नाम " के नीचे संपादित करें और जाएं। आपको pymysql इंस्टॉल करना होगा।


3

कुछ पठनीय php के साथ निकोला के जवाब पर गुल्लक

$a = mysqli_query($conn,"select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position");
$b = mysqli_fetch_all($a,MYSQLI_ASSOC);
$d = array();
foreach($b as $c){
    if(!is_array($d[$c['TABLE_NAME']])){
        $d[$c['TABLE_NAME']] = array();
    }
    $d[$c['TABLE_NAME']][] = $c['COLUMN_NAME'];
}
echo "<pre>",print_r($d),"</pre>";

1
'कुछ पठनीय php' .. a, b, c के साथ नामकरण चर जिसे मैं पठनीय नहीं
कहूंगा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.