Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql So wählen Sie nur aus einer Spalte aus, wenn die Spalte vorhanden ist

Diese Abfrage gibt Ihnen an, ob eine Spalte existiert.

SELECT * 
FROM information_schema.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'db_name' 
AND TABLE_NAME = 'table_name' 
AND COLUMN_NAME = 'column_name'

Wenn Sie überprüfen möchten, ob einige Spalten vorhanden sind, führen Sie eine select-Anweisung aus. Sie müssen zuerst überprüfen, ob Ihre Spalten vorhanden sind. Führen Sie dann die Auswahl:

durch
if (exists (SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = 'myview' AND COLUMN_NAME = 'Period') and exists (SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = 'myview' AND COLUMN_NAME = 'Country'))
begin
    select `Period`, `Country` from myview
end

Wenn die IF-Bedingung wahr ist, werden Sie alles innerhalb von BEGIN und END ausführen.