webentwicklung-frage-antwort-db.com.de

Finden Sie alle Tabellen, deren Name mit einem bestimmten Suffix endet

Ich habe Tausende von Tabellen in der Datenbank. Einige Namen enden mit _History.

Zum Beispiel :

abc_History
bcd_History
123_History

Wie finde ich alle Tabellen, deren Name mit _History endet?.

So etwas wie:

SELECT
table_name
FROM sys.tables WHERE table_name LIKE '_History%'

Und

error : Invalid column name 'table_name'.
9
Shree

Versuche dies:

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.tables 
WHERE TABLE_NAME LIKE '%_History'

ODER

SELECT name
FROM sys.tables
WHERE name LIKE '%_History'
16
Saharsh Shah

Vielen Dank an @ Saharsh-shah.

Um den Tabellennamen mit allen Spaltennamen abzurufen in derselben Abfrage, verwenden Sie Folgendes:

SELECT 
    `TABLE_NAME`,
    group_concat(`COLUMN_NAME` separator ',') AS `COLUMNS`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_NAME` IN(
    SELECT TABLE_NAME
        FROM INFORMATION_SCHEMA.tables 
        WHERE `TABLE_NAME` LIKE '%_History'
    )
GROUP BY `TABLE_NAME`

Sie können es ganz einfach in ein mehrdimensionales PHP -Array verschieben, indem Sie Folgendes ausführen:

$tables['columns'] = explode(',', $tables['columns']);

Hoffe es kann einigen helfen.

0
Meloman