2016-03-30 15 views
1

Ich habe rund 60 Tabellen und einige Tabellen haben Spalte Feldname uid .Ich habe eine Abfrage, die Details über Datenbank und Tabelleninformationen Schema.Ich möchte nur überprüfen, dass in wie vielen Tabellen, die uid Spalte exists.Here ist eine AbfrageSpalte existiert in mysql Tabellen

SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='records' AND column_name='uid' 

Hier prüft es für eine Tabelle.Wie könnte es für alle Tabellen überprüfen?

Antwort

1

Versuchen Sie, diese

SELECT T.TABLE_NAME,(CASE WHEN C.COLUMN_NAME IS NULL THEN 'NO' ELSE 'YES' END) Result 
    FROM INFORMATION_SCHEMA.TABLES T 
     LEFT OUTER JOIN INFORMATION_SCHEMA.COLUMNS C ON C.TABLE_NAME = T.TABLE_NAME 
AND C.COLUMN_NAME='uid' 

Es wird mit Ergebnisspalte alle Tabellen

+0

Ich möchte nur zwei Spalten ersten Namen einer Tabelle und die zweiten Spalte für Exist, den Wert YES oder NO –

+0

Modified, prüfe jetzt –

+0

Dank es –

1
die TABLE_NAME Spalte von wo an die Auswahl Bewegen

:

SELECT t.table_name, 
     max(CASE WHEN t.Column_name = 'uid' then 'Yes' else 'No' end) as YourInd 
FROM INFORMATION_SCHEMA.COLUMNS t 
GROUP BY t.table_name 
+0

Ich möchte nur zwei Spalten den Vornamen einer Tabelle und die zweite Spalte für Exist mit dem Wert YES oder NO - –

+0

Unbekannte Spalte 't.TABLE_NAME' in 'Feldliste' –

+0

@WasiqMuhammad Ich habe die Lösung auf eine mit nur einer Auswahl aus gesetzt die Tabelle anstelle von zwei – sagi

0

Ihre Anforderung zu passen: "Ich möchte nur wissen, ob in wie vielen Tabellen diese Spalte vorhanden ist":

SELECT count(TABLE_NAME) FROM INFORMATION_SCHEMA.COLUMNS 
WHERE column_name = 'uid' 

Ihre zweite Anforderung passen: „Ich möchte nur zwei Spalten erster Namen einer Tabelle und die zweiten Spalte für Exist, den Wert hat ja oder nein“

SELECT t.table_name, if(c.column_name = 'Ref', 'yes', 'no') as exist 
FROM information_schema.COLUMNS c 
left join information_schema.tables t 
on t.TABLE_NAME = c.TABLE_NAME 
group by c.TABLE_NAME 
+0

Ich brauche zwei Spalten erste Spalte ** Tabellenname ** zweite Spalte ** existieren **, die ENUM wie JA oder NEIN haben –

0

ich denke, das wird es tun .

SELECT TABLE_NAME, CASE WHEN column_name = 'uid' THEN 1 ELSE 0 END AS 'EXISTS' FROM INFORMATION_SCHEMA.COLUMNS GROUP BY TABLE_NAME

0

Verwenden Abfrage nach.

SELECT TABLE_NAME, 
    CASE 
     WHEN COLUMN_NAME = 'uid' THEN "YES" 
     ELSE "NO" 
    END AS 'EXISTS' 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA='<database_name>' 
    AND COLUMN_NAME='uid'